java客户端_Java常用的Http client客户端
Http Client應用場景:
Http協議是最重要的網絡協議之一,目前移動端的開發、javaweb前后端分離架構,使越來越多的java應用使用http協議訪問資源。Http client 大多數場景使用在多個服務之間相互調用rest api,特別是現在微服務架構的流行,使得http client的使用更加頻繁。當然很多爬蟲項目也使用到Http client。
Java常用的Http 客戶端:
一、Java原生HttpURLConnection
二、Apache http client
三、OkHttp
四、Spring 家族 RestTemplate
各客戶端詳細介紹:
一、Java原生HttpURLConnection:
簡介:java.net包下的原生java api提供的http請求。
使用步驟:
1、通過統一資源定位器(java.net.URL)獲取連接器(java.net.URLConnection)。
2、設置請求的參數。
3、發送請求。
4、以輸入流的形式獲取返回內容。
5、關閉輸入流。
Demo:
二、Apache http client:
簡介:http client到目前為止最新是5.0beta版,官網地址:http://hc.apache.org/ 。Http client專為推展而設計,同時為基本http協議提供強大支持,盡管java.net包提供了通過http訪問的基本功能,但是未提供許多應用程序所需要功能。
使用步驟:
1、創建HttpClient對象。
2、創建請求方法的實例,并指定請求URL。如果需要發送GET請求,創建HttpGet對象;如果需要發送POST請求,創建HttpPost對象。
3、如果需要發送請求參數,可調用HttpGet、HttpPost共同的setParams(HetpParams params)方法來添加請求參數;對于HttpPost對象而言,也可調用setEntity(HttpEntity entity)方法來設置請求參數。
4、調用HttpClient對象的execute(HttpUriRequest request)發送請求,該方法返回一個HttpResponse。
5、調用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可獲取服務器的響應頭;調用HttpResponse的getEntity()方法可獲取HttpEntity對象,該對象包裝了服務器的響應內容。程序可通過該對象獲取服務器的響應內容。
6、釋放連接。無論執行方法是否成功,都必須釋放連接。
Demo:
三、OkHttp:
簡介:OkHttp是一個默認有效的HTTP客戶端,有效地執行HTTP可以加快您的負載并節省帶寬,如果您的服務有多個IP地址,如果第一次連接失敗,OkHttp將嘗試備用地址。這對于IPv4 + IPv6和冗余數據中心中托管的服務是必需的。OkHttp啟動具有現代TLS功能(SNI,ALPN)的新連接,并在握手失敗時回退到TLS 1.0,OkHttp支持Android 2.3及更高版本。對于Java,最低要求是1.7。
操作步驟:
1、創建OkhttpClient。
2、mClient執行newCall將Request轉化成一個Call。
3、最后call執行excute同步執行,enqueue異步執行。
4、Request主要通過Request.Builder來構建。
5、緩存。
6、取消請求。
Demo:
四、Spring 家族 RestTemplate:
簡介:從Spring3.0開始,Spring為創建Rest API提供了良好的支持。Spring RestTemplate 是 Spring 提供的用于訪問 Rest 服務的客戶端,RestTemplate 提供了多種便捷訪問遠程Http服務的方法,能夠大大提高客戶端的編寫效率,所以很多客戶端比如 Android或者第三方服務商都是使用 RestTemplate 請求 restful 服務。RestTemplate有不同的版本實現,默認SimpleStreamingClientHttpRequest使用原生java http實現,HttpComponentsClientHttpRequestFactory使用apache http client實現,OkHttp3ClientHttpRequestFactory使用Okhttp實現。
操作步驟:
1、使用默認構造方法new一個實例new RestTemplate()。
2、RestTemplate 內部通過調用 doExecute 方法,首先就是獲取 ClientHttpRequest。
3、RestTemplate 實現了抽象類 HttpAccessor ,所以可以調用父類的 createRequest。
4、SimpleClientHttpRequestFactory 實現了 ClientHttpRequest,同時實現方法。
5、執行 requestCallback.doWithRequest(request)。
6、執行 response = request.execute()。
7、最后解析response。
Demo:
歡迎大家留言交流。
總結
以上是生活随笔為你收集整理的java客户端_Java常用的Http client客户端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql表添加完整性约束_SQL语句—
- 下一篇: js定位div坐标存入mysql_Jav