怎樣使用HTTP協議訪問網路

2021-07-11 19:28:56 字數 2669 閱讀 8859

在android上傳送http請求的方式一般有兩種,httpurlconnection和httpclient:

第一:現在講一下httpurlconnection的用法。

1)首先需要獲取到httpurlconnection的例項,一般只需new 出乙個url物件,並傳入目標網路的位址,然後呼叫一下openconnection()方法即可,如下所示:

2)到了 httpurlconnection的例項之後,我們可以設定一下http請求所使用的方法。常用的方法主要有兩個,

get和post。get表示希望從伺服器那裡獲取資料,而post則表示提交資料給伺服器。寫法如下:

connection.setrequestmethod("get");

3)接下來就可以進行一些自由的定製了,比如設定連線超時,讀取超時的毫秒數,以及伺服器希望得到的一些訊息頭等。這部分內容根據自己的實際情況進行編寫,示例如下:

connection.setconnectiontimeout(8000);

connection.setreadtimeout(8000);

4)之後呼叫getinputstream()方法就可以獲取到伺服器返回的輸入流了,剩下的任務就是對輸入流進行讀取,如下所示:

inputstream in=connection.getinputstream();

最後可以呼叫disconnect()方法將這個http連線關閉掉,如下所示:

connection.disconnection();

只有ui和handler thread 自帶looper其他的需要這樣寫就可以把他們放在主線程中

new handler(looper.getmainlooper()).post(new runnable()

});

第二:現在講一下

httpclient的用法。

首先httpclient是apache提供的http網路訪問介面,從一開始的時候就被引入到android的api中。它可以

完成和httpurlconnection幾乎一模一樣的效果,但兩者的之間的用法卻有較大的差別,下面我們看看httpclient的用法。

1)我們要知道,httpclient是乙個介面,因此無法建立它的例項,通常情況下都會建立乙個defaulthttpclient的例項,如下所示:

2)接下來如果想要發起一條get請求,就可以建立乙個httpget物件,並傳入目標的網路位址,然後呼叫httpclient的execute()方法即可:

3)如果是發起一條post請求會比get稍複雜一點,我們需要建立乙個httppost物件,並傳入目標網路位址,並設定標題如下所示:

呼叫httppost的setentity()方法將構建好的urlencodedformentity傳入,如下所示:

接下來的操作就和httpget一樣了,呼叫httpclient的execute()方法,並將httppost物件傳入即可:

執行execute()方法之後會返回乙個httpresponse物件,伺服器所返回的所有資訊就會包含在這裡面。通常情況下我們都會先取出伺服器返回的狀態

碼,如果等於200就說明請求和響應都成功了,如下所示:

接下來在這個if判斷的內部取出服務返回的具體內容,可以呼叫getentity()方法獲取到乙個httpentity例項,然後再用

entityutils.tostring()這個靜態方法將httpentity轉化成字串即可,如下所示:

注意如果伺服器返回的資料是帶中文的,直接呼叫entityutils.tostring()方法進行轉換會有亂碼的情況出現,這個時候

只需要在轉換的時候將字符集指定成utf-8就可以了,如下所示:

string response=entityutils.tostring(entity,"utf-8");

使用HTTP協議訪問網路

new乙個url物件 url url new url 千萬不要用www.baidu.com,坑爹東西 呼叫openconnection 方法,得到httpurlconnection物件 對httpurlconnection物件設定模式,get 表示希望從伺服器那裡獲取資料,而 post 則表示希望提...

Android使用Http協議訪問網路

在android上傳送http請求的方式一般有兩種,httpurlconnection和httpclient。一 httpurlconnection 一般有以下步驟 先將字串位址傳入url物件,再用url物件開啟乙個httpurlconnection物件,然後對httpurlconnection物件...

網路 http協議

http hypertext transfer protocol 即超文字傳輸協議,現在基本上所有web專案都遵從http協議。目前絕大部分使用的都是http 1.1版本 1.0太老2.0仍在制訂中 url 就是我們俗稱的 urlencode和urldecode 等這樣的字元,已經被url當做特殊意...