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可以被我們收...