《Android》『HttpClient』- 如何透過 HttpClient 接收伺服器資料

《Android Developers 參考文獻》

➥HttpURLConnection

 

《簡單介紹》

HttpClient 與 HttpURLConnection 都是用來實作 Http 連線的類別,差別在於 HttpClient 只支援到 Android 6.0 (API level 23) ,在之後的版本,Google 不再維護 HttpClient,改為建議使用 HttpURLConnection 來替換,這邊首先針對HttpClient 類別介紹其使用方式,以及簡單介紹 URL 網址的基本結構。

 

《HttpClient 的使用方式》

透過 HttpClient,我們可以對伺服器執行 HTTP GET 與 HTTP POST 的調用,這兩種調用的差異在於 message-body 的有無,GET 就像是明信片,只能在 http-header (Header Params)與 URL 網址後面加上要傳遞的訊息(Query Params),而 POST 就像是帶有信紙的信封,多了 message-body 可以置入想要寄送的資料或檔案。

我們在跟伺服器請求資料時,通常會附帶一些資訊,以讓伺服器知道要回傳給我們哪些資料。

以下介紹 HttpClient 在程式碼中使用的方式 –

1. 在 AndroidManifest.xml 文件中添加網路權限。

 

2. 使用 DefaultHttpClient 類別實作 HttpClient 物件。

 

3. 創建 HttpGet 或 HttpPost 物件,將請求的 URL 網址通過建構子傳入 HttpGet 或 HttpPost 物件。

這邊要注意的是,網址有時會帶有兩種參數,分別是 Header Params 以及 Query Params,其中 Query Params 是指直接加在網址後面,以?開頭並以&做每個參數的區分,Header Params 則須在下一個步驟做加入。

 

4. 調用 HttpGet 或 HttpPost 物件的 addHeader 函式,視 API 定義加入所需的 Header Params。

 

5. 調用 HttpClient 物件的 execute 函式,發送 HTTP GET 或 HTTP POST 請求,並回傳給 HttpResponse 物件。

 

6. 通過HttpResponse 接口的 getEntity 方法取得伺服器回應的訊息,並進行相應的處理。

完整程式碼範例如下 –

HttpClient 實作 HTTP GET 讀取伺服器資料

這篇介紹完如何透過 HttpClient 實作 HTTP 之請求,下一篇將再來探討 HttpURLConnection 的使用方式。

賽肥膩膩

我們是低調到不行的肥膩夫妻檔,一路上一邊吵鬧一邊記錄著生活大小事,最近迷上了宅在家追劇,希望能透過文字將所有看過的影集好好紀錄,整理成屬於我們自己的回憶資料庫。

上 / 下一篇文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *