Android學習記錄(二十八)--Android apache httpclients的使用。
阿新 • • 發佈:2019-02-06
1.歷史原因:
Android當前不在支援APACHE的一套內容,開始推自己的網路請求庫,基本等同於okhttp。但是非常令人失望的是,這個庫目前看支援是不全的,對於網路鑑權,只支援BASE的網路鑑權,不支援DIGEST鑑權,因此APACHE的庫依然還需要使用。但是GOOGLE比較噁心,在新的COMPILESDK為6.0的時候,不再允許引入APACHE的基本庫。
現在的GRADLE配置如下:
useLibrary 'org.apache.http.legacy'
再加上:
compile files('libs/httpclient-android-4.3.5.1.jar'
2.如何使用:
下面介紹一些基本的用法:
連線建立:
HttpClient httpClient = HttpClientBuilder.create().build();
或者:
HttpClient httpClient = HttpClients.custom().build();
建立的是一個CloseableHttpClient類,這個類繼承自HttpClient. HttpClients.custom()建立的是一個HttpClientBuilder類。
這個類主要是進行HTTPCLIENT相關的配置,如:
public final HttpClientBuilder setSSLSocketFactory( final LayeredConnectionSocketFactory sslSocketFactory)這個方法進行SSL的相關的配置。
public final HttpClientBuilder setConnectionManager(
final HttpClientConnectionManager connManager)
進行相關的連線屬性配置等等。大部分的填充內容都繼承自原來的APACHE基礎庫,這樣就可以保證相關的相容性。
原先的HTTPGET,HTTPCONTEXT等並沒有變化,HttpResponse response = httpClient.execute(httpGet, context)等還是沿用原來的庫; 主要就是HTTPCLIENT的修改。熟悉HttpClientBuilder和CloseableHttpClient,就可以應付一般的網路請求。