前面介紹了使用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進行測試。
用戶端測試結果如圖
證明資料已經由用戶端發至web應用,然後經由服務端處理後發回用戶端
2.發送post請求
同使用httpurlconnection類發送請求一樣,對于複雜的請求資料,也需要使用post方式發送,使用httpclient發送post請求大緻可以分為以下幾個步驟:
(2)建立httppost對象
(3)如果需要發送請求參數,可以調用httppost的setparam()方法來添加請求參數,也可以調用setentity()方法來設定請求參數。
(4)調用httpclient對象的execute()方法發送請求,該方法将傳回一個httpresponse對象
(5)調用httpresponse的getentity()方法,可以獲得包含伺服器相應内容的httpentity對象,通過該對象可以擷取伺服器的響應内容。
下面通過一個執行個體來說明如何使用httpclient來發送post請求
界面:一個編輯框用來填寫昵稱和微網誌資訊,一個按鈕用來實作釋出,下面的文本框顯示伺服器傳回的資訊。
轉載請注明出處:http://blog.csdn.net/acmman/article/details/46414549