天天看點

【Android開發】網絡程式設計及Internet應用-使用HttpClient通路網絡

    前面介紹了使用java.net包中的httpurlconnection類來通路網絡,在一般情況下,如果隻需要到某個簡單頁面送出請求并擷取伺服器的響應,完全可以使用該技術來實作。不過,對于比較複雜的聯網操作,使用httpurlconnection類就不一定能滿足要求,這時,可以使用apache組織提供的httpclient項目來實作。在android中,已經成功的內建了httpclient,是以可以直接在android中使用httpclient來通路網絡。

    httpclient實際上是對java提供的通路網絡的方法進行了封裝。httpurlconnection類中的輸入\輸出流操作,在httpclient中被統一封裝成了httpget、httppost和httpresponse類,這樣就簡化了操作。其中,httpget類代表發送get請求;httppost類代表發送post請求;httpresponse類代表處理響應的對象。

    同使用httpurlconnection類一樣,使用httpclient發送http請求也可以分為發送get請求和post請求兩種,下面分别進行介紹。

1.發送get請求

需要以下幾個步驟

(1)建立httpclient對象

(2)建立httpget對象

(3)如果需要發送請求參數,可以直接将要發送的參數連接配接到url位址中,也可以調用httpget的setparams()方法來添加請求參數

(4)調用httpclient對象的execute()方法發送請求。執行該方法将傳回一個httpresponse對象。

(5)調用httpresponse的getentity()方法,可獲得包含伺服器相應内容的httpentity對象,通過該對象可以獲得伺服器的相應内容。

下面通過一個執行個體來說明如何使用httpclient來發送get請求

界面:有一個"發送get請求"的按鈕和一個文本區域,點選按鈕可以在文本區檢視伺服器端傳回的資料

res/layout/main.xml:

界面圖略

主界面

mainactivity:

在安卓的配置檔案androidmanifest.xml中别忘記加入通路網絡的權限:

在javaee工作台(或myeclipse)中建立一個名為"wenxintest"的web應用,在index.jsp中寫下如下關鍵代碼:

接着将應用部署至tomcat,啟動tomcat進行測試。

用戶端測試結果如圖

【Android開發】網絡程式設計及Internet應用-使用HttpClient通路網絡

證明資料已經由用戶端發至web應用,然後經由服務端處理後發回用戶端

2.發送post請求

同使用httpurlconnection類發送請求一樣,對于複雜的請求資料,也需要使用post方式發送,使用httpclient發送post請求大緻可以分為以下幾個步驟:

(2)建立httppost對象

(3)如果需要發送請求參數,可以調用httppost的setparam()方法來添加請求參數,也可以調用setentity()方法來設定請求參數。

(4)調用httpclient對象的execute()方法發送請求,該方法将傳回一個httpresponse對象

(5)調用httpresponse的getentity()方法,可以獲得包含伺服器相應内容的httpentity對象,通過該對象可以擷取伺服器的響應内容。

下面通過一個執行個體來說明如何使用httpclient來發送post請求

界面:一個編輯框用來填寫昵稱和微網誌資訊,一個按鈕用來實作釋出,下面的文本框顯示伺服器傳回的資訊。

【Android開發】網絡程式設計及Internet應用-使用HttpClient通路網絡

轉載請注明出處:http://blog.csdn.net/acmman/article/details/46414549

繼續閱讀