網絡互動
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();//斷開連接配接