1. 程式人生 > >Android學習記錄(二十八)--Android apache httpclients的使用。

Android學習記錄(二十八)--Android apache httpclients的使用。

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,就可以應付一般的網路請求。