天天看點

Android 網絡互動

網絡互動

HTTP

請求/響應式的協定。

HTTP請求:用戶端在與伺服器端建立連接配接後,即可向伺服器 端發送請求。

HTTP響應:伺服器端接收到請求後做出響應。

特點:簡單快速,靈活,無狀态。

HTTP請求一般包括請求的Head和Body。請求方式為GET,POST,PUT,DELETE。

請求頭 說明
Host 請求域名,可以是www開頭的,也可以是IP+域名
Charset 字元集
Connection 是否保持長連接配接
From表單 是POST鎖必須和特有的(一般都放在請求Body中)
逾時時間 作為網絡沒有響應的等待限制,逾時會預設給用戶端顯示Timeout異常

常見的狀态碼:

200:伺服器成功處理了用戶端的請求。

302:請求的資源臨時從不同的URI響應請求,但請求這應繼續使用原有位置進行以後的請求。

404:伺服器找不到請求的資源。

500:伺服器發送錯誤,無法處理用戶端的請求。

HTTP如何進行請求與響應

HTTP請求:

URL realUrl = new URL(requestUrl);
//通過HttpURLConnection對象,向網絡位址發送請求
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
conn.setDoOutput(true);//設定允許輸出
conn.setUseCaches(false);//設定不使用緩存
conn.setRequestMethod("POST");//設定使用POST的方法發送
conn.setRequestProperty("Connection", "Keep-Alive");//設定維持長連接配接
conn.setRequestProperty("Charset", "UTF-8");//設定檔案字元集
conn.setRequestProperty("Content-Length", String.valueOf(data.length));//設定檔案長度
conn.setRequestProperty("Content_Type", "application/x-www-form-urlencoded");//設定檔案類型
conn.setConnectTimeout(*);
           

HTTP響應:

if(conn.getResponseCode()!=){
  throw new RuntimeException("請求url失敗");
}
InputStream is = conn.getInputStream();//得到網絡傳回的輸入流
String result= readData(is, "GBK");//設定解碼格式
conn.disconnect();//斷開連接配接