URLConnection 提交請求

2021-06-20 21:37:49 字數 2358 閱讀 5540

url的openconnection()方法將返回乙個urlconnection物件,該物件表示應用程式和url之間的通訊連線。

setdoinput設定是否可以從httpconnection讀入資料,預設為true

setdooutput設定是否可以向httpconnection輸出資料,預設為false

在用post方法傳送請求時,對connection物件的一切配置(一堆set函式)必須在connection()函式執行之前完成。

outputstream的寫操作,必須在inputstream的讀操作之前。

寫入outputstream中的內容並不立即發往伺服器,而是存在於記憶體緩衝區中,待outputstream關閉時,根據輸入的內容生成http正文。在呼叫getinputstream()是,將http請求傳送到伺服器,返回乙個輸入流,用於讀取伺服器的返回資訊。

由於http請求在getinputstream時已經發出(包括http頭和正文),因此在getinputstream()函式之後對connection物件進行設定(對http頭的資訊進行修改)或者寫入outputstream(對正文進行修改)都是沒有意義的,執行這些操作會導致異常的發生。

1.兩個按鈕,乙個傳送get請求,乙個傳送post請求。乙個edittext,用來顯示結果。

2.get按鈕實現傳送get請求,這次實現的像是解析網頁一樣的感覺。

主檔案,傳入引數,呼叫方法:

string response = getpostutil.sendget("",null);

實現功能的檔案中:

//開啟和url之間的連線

urlconnection conn = realurl.openconnection();

//設定通用的請求屬性

conn.setrequestproperty("accept", "*/*");

conn.setrequestproperty("connection", "keep-alive");

conn.setrequestproperty("user=agent", "mozilla/4.0(compatible;msie 6.0;windows nt 5.1;sv1)");

//建立實際的連線

conn.connect();

//獲取所有響應頭欄位

map> map = conn.getheaderfields();

//遍歷所有的響應頭欄位

for(string key:map.keyset())

//定義bufferedreader輸入流來讀取url的響應

in = new bufferedreader(new inputstreamreader(conn.getinputstream()));

string line;

while((line = in.readline()) != null)

3.post按鈕實現傳輸給伺服器一些資料,再獲取伺服器的返回。這裡是乙個登陸操作,傳遞了name和pass

主程式檔案中傳遞引數,呼叫方法:

string response = getpostutil.sendpost("","name=crazyit.org&pass=leegang");

實現功能的檔案中:

//開啟和url之間的連線

urlconnection conn = realurl.openconnection();

//設定通用的請求屬性

conn.setrequestproperty("accept", "**");

conn.setrequestproperty("connection", "keep-alive");

conn.setrequestproperty("user=agent", "mozilla/4.0(compatible;msie 6.0;windows nt 5.1;sv1)");

//傳送post請求必須設定的

conn.setdoinput(true);

conn.setdooutput(true);

//獲取urlconnection對相對應的輸出流

out = new printwriter(conn.getoutputstream());

//傳送請求引數

out.print(params);

//flush輸出流的緩衝

out.flush();

//定義bufferedreader輸入流來讀取url的響應

in = new bufferedreader(new inputstreamreader(conn.getinputstream()));

string line;

while((line = in.readline()) != null)

4.授權啊親。。。**

網路通訊程式設計URLConnection的基礎知識

urlconnection核心 如下 public downutil string path,string targetfile,int threadnum private class downthread extends thread 上面程式中定義了downthread執行緒類,該線各負責讀取從...

1 URL和URLConnection類的使用

url obj new url system.out.println obj.getpath system.out.println obj.getprotocol system.out.println obj.getquery system.out.println obj.gethost syste...

GET提交和POST提交

1 get提交的規則 我們做專案的時候進行提交資料的時候,經常會用到get提交和post提交,首先呢get是指定資源請求資料,post是向指定的資源提交要被處理的資料,我們再來看一下關於get的詳細解釋 1 get是可以被快取的 2 get的引數是保留在瀏覽器的歷史記錄裡面的 3 get可以被我們收...