我們正在JRE 1.4上實現一個REST客戶端。使用HTTPClient或HttpUrlConnection?
似乎客戶端REST框架的兩個不錯的選擇是HttpClient和HttpUrlConnection。
有什麼理由使用的HttpClient在JRE的HttpURLConnection的?
我們正在JRE 1.4上實現一個REST客戶端。使用HTTPClient或HttpUrlConnection?
似乎客戶端REST框架的兩個不錯的選擇是HttpClient和HttpUrlConnection。
有什麼理由使用的HttpClient在JRE的HttpURLConnection的?
以我的經驗HttpClient的是稍微簡單,更直觀比使用HttpURLConnection的使用,但我認爲這是一個非常主觀的決定,情況因人而異。
HttpUrlConnection很容易處理。 REST實現非常簡單。
儘管您必須考慮整個環境的實施情況,並檢查哪些方法對您更好。
的Restlet Framework還具有工作了服務器端和客戶端的API。我們支持可插入的客戶端連接器,利用HttpURLConnection或Apache HTTP Client或我們自己的內部HTTP客戶端。
我們ClientResource類提供更高級別的HTTP客戶端API,與像自動重定向,對象和表示,內容協商和更之間透明轉換功能。
最好的問候,
傑羅姆Louvel
的Restlet〜創始人和首席開發者〜http://www.restlet.org
Noelios技術〜共同創始人〜http://www.noelios.com
我們在1.4 - Restlet在1.4上工作? –
@Marcus:是的,我現在在Java 1.6中使用Restlet的客戶端,這是一個夢想。 (我們已將它配置爲位於Apache HTTP Client之上,這比java.net.HttpUrlConnection好得多) –
我給你一個單一的,具體的支持Apache HTTPClient的原因是:JDK的HttpUrlConnection
不支持Apache的HTTPClient所支持的超時*。
應用程序應該總是調用到其他系統(數據庫,遠程服務,你自己的服務器後端,...)時設置超時的能力。
*這是固定的Java 1.5中; Java 1.5及更高版本支持HttpUrlConnection中的超時。
我會推薦Jakarta Commons HTTP客戶端通過java.net.HttpUrlConnection,因爲它更成熟,並有richer feature set。例如,您可以要求它設置多線程連接池(請參閱MultiThreadedHttpConnectionManager),並且它完全支持所有HTTP方法(GET,PUT,POST,DELETE,OPTIONS,TRACE)。
... HttpClient的不支持代理等的Kerberos/NTLM身份驗證... Java的HttpURLConnection類會做認證的開箱...
這比較實際上是在尋找創新了HTTPClient,它沒有任何關係用Apache的HttpClient afaik – objects
謝謝對象..刪除鏈接。 –