標籤:
1. 前言
HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java應用程式需要直接通過 HTTP 協議來訪問網路資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的準系統,但是對於大部分應用程式來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支援 HTTP 協議的用戶端編程工具包,並且它支援 HTTP 協議最新的版本和建議。HttpClient 已經應用在很多的項目中,比如 Apache Jakarta 上很著名的另外兩個開源項目 Cactus 和 HTMLUnit 都使用了 HttpClient。現在HttpClient最新版本為 HttpClient 4.4 (GA) (2015-02-05)
2.主要功能介紹
1) 實現了HTTP的所有方法(POST、GET、PUT、HEAD等)
2) 支援自動轉向
3) 支援 HTTPS 協議
4) 支援Proxy 伺服器等
3. 特性
1) 基於標準、純淨的java語言。實現了Http1.0和Http1.1
2) 以可擴充的物件導向的結構實現了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。
3) 支援HTTPS協議。
4) 通過Http代理建立透明的串連。
5) 利用CONNECT方法通過Http代理建立隧道的https串連。
6) Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos認證方案。
7) 外掛程式式的自訂認證方案。
8) 便攜可靠的通訊端工廠使它更容易的使用第三方解決方案。
9) 連線管理員支援多線程應用。支援設定最大串連數,同時支援設定每個主機的最大串連數,發現並關閉到期的串連。
10) 自動處理Set-Cookie中的Cookie。
11) 外掛程式式的自訂Cookie策略。
12) Request的輸出資料流可以避免流中內容直接緩衝到socket伺服器。
13) Response的輸入資料流可以有效從socket伺服器直接讀取相應內容。
14) 在http1.0和http1.1中利用KeepAlive保持持久串連。
15) 直接擷取伺服器發送的response code和 headers。
16) 設定連線逾時的能力。
17) 實驗性的支援http1.1 response caching。
18) 原始碼基於Apache License 可免費擷取。
[HttpClient]HttpClient簡介