Android開發實現HttpClient工具類

2021-08-26 10:27:30 字數 1350 閱讀 1562

在android開發中我們經常會用到網路連線功能與伺服器進行資料的互動,為此android的sdk提供了apache的httpclient來方便我們使用各種http服務。你可以把httpclient想象成乙個瀏覽器,通過它的api我們可以很方便的發出get,post請求(當然它的功能遠不止這些)。

比如你只需以下幾行**就能發出乙個簡單的get請求並列印響應結果:

try catch (clientprotocolexception e) catch (ioexception e)

為什麼要使用單例httpclient?

這只是一段演示**,實際的專案中的請求與響應處理會複雜一些,並且還要考慮到**的容錯性,但是這並不是本篇的重點。注意**的第三行:

在發出http請求前,我們先建立了乙個httpclient物件。那麼,在實際專案中,我們很可能在多處需要進行http通訊,這時候我們不需要為每個請求都建立乙個新的httpclient。因為之前已經提到,httpclient就像乙個小型的瀏覽器,對於整個應用,我們只需要乙個httpclient就夠了。看到這裡,一定有人心裡想,這有什麼難的,用單例啊!!就像這樣:

多執行緒!試想,現在我們的應用程式使用同乙個httpclient來管理所有的http請求,一旦出現併發請求,那麼一定會出現多執行緒的問題。這就好像我們的瀏覽器只有乙個標籤頁卻有多個使用者,a要上google,b要上baidu,這時瀏覽器就會忙不過來了。幸運的是,httpclient提供了建立執行緒安全物件的api,幫助我們能很快地得到執行緒安全的「瀏覽器」。

解決多執行緒問題

// 使用執行緒安全的連線管理來建立httpclient

在上面的gethttpclient()方法中,我們為httpclient配置了一些基本引數和超時設定,然後使用threadsafeclientconnmanager來建立執行緒安全的httpclient。上面的**提到了3種超時設定,比較容易搞混,故在此特作辨析。

Android開發實現載入框

import android.content.context public class loadview progressdialog.setmessage values progressdialog.setcanceledontouchoutside false progressdialog.sh...

Android學習 Http請求

今天繼續學習網路程式設計模組。首先是webview,簡單的來訪問網頁 在這之前先要什麼訪問網路的許可權 android name android.permission.internet 實現在layout中新建webview元件,然後在activity中新建webview物件,然後呼叫setwebv...

android 原生http請求

向指定 url 傳送post方法的請求 param url 傳送請求的 url param param 請求引數,請求引數應該是 name1 value1 name2 value2 的形式。return 所代表遠端資源的響應結果 public static string sendpost strin...