(转)HttpURLConnection与 HttpClient 区别
轉(zhuǎn)自:
HttpURLConnection與 HttpClient 區(qū)別/性能測試對比 - 尚碼園HttpURLConnection與HttpClient隨筆 目前在工做中遇到的須要各類對接接口的工做,須要用到HTTP的知識,工做完成后想要作一些筆記,原本知識打算把本身寫的代碼粘貼上來就行了,https://www.shangmayuan.com/a/6ee68d2d1c9b4606bf618dfd.html
【README】
本文總結(jié)了 HttpURLConnection, HttpClient的區(qū)別;
【1】HttpURLConnection(jdk自帶)
在JDK的java.net包中已經(jīng)提供了訪問HTTP協(xié)議的基本功能的類:HttpURLConnection。
HttpURLConnection是Java的標準類,它繼承自URLConnection,可用于向指定網(wǎng)站發(fā)送GET請求、POST請求。它在URLConnection的基礎(chǔ)上提供了以下便捷的方法:
int getResponseCode(); // 獲取服務(wù)器的響應(yīng)代碼。 String getResponseMessage(); // 獲取服務(wù)器的響應(yīng)消息。 String getResponseMethod(); // 獲取發(fā)送請求的方法。 void setRequestMethod(String method); // 設(shè)置發(fā)送請求的方法。【2】HttpClient 簡介(apache開源)
1)在通常狀況下,若是只是須要向Web站點的某個簡單頁面提交請求并獲取服務(wù)器響應(yīng),HttpURLConnection徹底能夠勝任。
HttpURLConnection缺點:但在絕大部分狀況下,Web站點的網(wǎng)頁可能沒這么簡單,這些頁面并非經(jīng)過一個簡單的URL就可訪問的,可能須要用戶登陸并且具備相應(yīng)的權(quán)限才可訪問該頁面。在這種狀況下,就須要涉及Session、Cookie的處理了,若是打算使用HttpURLConnection來處理這些細節(jié),固然也是可能實現(xiàn)的,只是處理起來難度就大了。
2)HttpClient: 為了更好地處理向Web站點請求,包括處理Session、Cookie等細節(jié)問題,Apache開源組織提供了一個HttpClient項目,看它的名稱就知道,它是一個簡單的HTTP客戶端(并非瀏覽器),能夠用于發(fā)送HTTP請求,接收HTTP響應(yīng)。但不會緩存服務(wù)器的響應(yīng),不能執(zhí)行HTML頁面中嵌入的Javascript代碼;也不會對頁面內(nèi)容進行任何解析、處理。
簡單來講,HttpClient就是一個加強版的HttpURLConnection,HttpURLConnection能夠作的事情HttpClient所有能夠作;HttpURLConnection沒有提供的有些功能,HttpClient也提供了,但它只是關(guān)注于如何發(fā)送請求、接收響應(yīng),以及管理HTTP鏈接。
【3】小結(jié)
httpClient是個開源框架,封裝了訪問http的請求頭,參數(shù),內(nèi)容體,響應(yīng)等等,
HttpURLConnection是java的標準類,什么都沒封裝,用起來太原始,不方便
性能測試結(jié)果:
HttpURLConnection 優(yōu)于 HttpClient ;
總結(jié)
以上是生活随笔為你收集整理的(转)HttpURLConnection与 HttpClient 区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaI/O流小结
- 下一篇: internet地址java表示