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

Java Socket 程式設計(二)-2:簡易 Web 客戶端與靜態方法封裝

     編輯:Java 相關知識

模組化設計

將網頁取得邏輯封裝於靜態方法 getPage(),提升程式碼複用性與可讀性:

public class SimpleWebClient {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 80);
            getPage(socket);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static void getPage(Socket socket) {
        try (DataOutputStream out = new DataOutputStream(socket.getOutputStream());
             DataInputStream in = new DataInputStream(socket.getInputStream())) {

            out.writeBytes("GET / HTTP/1.0\r\n\r\n");
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
                if (line.isEmpty()) break; // 請求頭結束
            }
        } catch (IOException e) {
            System.err.println("讀取失敗: " + e);
        }
    }
}

關鍵細節

  • 空行偵測:HTTP 回應頭以空行結束,line.isEmpty() 判斷
  • 資源管理:方法內部使用 try-with-resources 確保流關閉
  • 異常傳播:宣告 throws IOException 由呼叫端統一處理

擴充建議

  • 支援 HTTPS(需 SSLSocketFactory)
  • 解析回應狀態碼、Content-Type、Content-Length
  • 處理 Chunked 傳輸編碼
  • 加入連線池複用 HttpClient 元件

此架構為後續實作 HTTP 伺服器端請求解析奠定基礎。

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