首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 網路編程隱藏寶藏:URLConnection 輕量級 HTTP 客戶端

     編輯:Java 相關知識

許多開發者一提到網路通訊就直奔 Socket,其實 java.net.URLConnection 封裝了 HTTP 協議細節,幾行代碼即可完成 GET/POST 請求,無需手寫 Socket 解析回應。本文以抓取 Yahoo 首頁為例,示範標準用法。

核心步驟

  1. new URL(urlString) 建立 URL 物件
  2. url.openConnection() 取得 URLConnection
  3. (可選)設定請求屬性:setRequestProperty、setDoOutput(true) 等
  4. conn.getInputStream() 取得回應輸入流
  5. 用 BufferedReader 逐行讀取並處理
  6. 最後 reader.close() 釋放資源

完整範例:URLClient

import java.io.*;
import java.net.*;

public class URLClient {
    public String getDocumentAt(String urlString) {
        StringBuilder doc = new StringBuilder();
        try {
            URL url = new URL(urlString);
            URLConnection conn = url.openConnection();
            // 可在此設定 User-Agent、Timeout 等
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);

            try (BufferedReader reader = new BufferedReader(
                    new InputStreamReader(conn.getInputStream(), "UTF-8"))) {
                String line;
                while ((line = reader.readLine()) != null) {
                    doc.append(line).append('\n');
                }
            }
        } catch (MalformedURLException e) {
            System.err.println("URL 格式錯誤: " + urlString);
        } catch (IOException e) {
            System.err.println("連線/讀取失敗: " + e.getMessage());
        }
        return doc.toString();
    }

    public static void main(String[] args) {
        URLClient client = new URLClient();
        String html = client.getDocumentAt("https://www.example.com");
        System.out.println(html.substring(0, Math.min(500, html.length())) + "...");
    }
}

進階技巧

  • POST 請求:conn.setDoOutput(true) 後,用 conn.getOutputStream() 寫入表單資料(key=value&key2=value2)。
  • Cookie 管理:搭配 CookieManager 自動處理 Session。
  • HTTPS:JDK 內建支援,若憑證不受信任需自訂 TrustManager。
  • 更強大的替代方案:Apache HttpClient、OkHttp、Java 11+ HttpClient 提供連線池、非同步、重試等企業級功能。

總結

URLConnection 是 JDK 隱藏的「秘密武器」:零依賴、API 簡潔、足夠應付簡單 HTTP 整合。下次需要呼叫 REST API 或抓網頁時,先評估它是否滿足需求,避免過度引入重型庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved