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

Java 實現 HTTP 模擬器:手工輸入請求、分段顯示回應、集中發送防提前斷開

     編輯:Java 相關知識

前言

為深入研究 HTTP 協議,本文實作一個互動式 HTTP 模擬器,支援手工輸入請求頭/實體、集中發送(避免伺服器提前斷開)、回應頭與實體分段顯示(避免二進制資源亂碼)、循環多次請求。完整原始碼與執行截圖均已提供。

五大核心步驟

  1. 大循環:while(true) 包裹單次請求/回應流程。
  2. readHostAndPort():解析 host:port,輸入 q 退出。
  3. readHttpRequest():讀取請求行與頭,空行結束;POST 需額外讀取實體。
  4. sendHttpRequest():建立 Socket,設 10 秒連接/讀取逾時,寫入請求並 flush()。
  5. readHttpResponse():讀取回應頭至空行,提示 Y/N 決定是否顯示實體;HEAD 方法自動跳過實體顯示;最後關閉 Socket。

關鍵實作細節

  • 使用 BufferedReader 處理控制台與 Socket 字元流。
  • 回應頭解析以雙 \r\n 為邊界,標記 b 區分頭尾空行。
  • 集中發送:輸入完所有請求資料後才 connect(),防止伺服器在輸入過程中逾時斷開。

執行示例

java http.HttpSimulator
host:port> www.csdn.net
請輸入HTTP請求:
GET / HTTP/1.1
Host: www.csdn.net

是否顯示HTTP的內容(Y/N): Y

主控台依序顯示狀態行、回應頭、HTML 內容。

結語

此模擬器是學習 HTTP 協議、除錯伺服器行為、測試特殊頭字段的利器,後續文章將持續用於示範各類 HTTP 交互場景。

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