Android基礎知識(二十三):網絡請求與HttpURLConnection的基本用法
一、Android網絡請求
在過去,Android上發送HTTP請求一般有兩種方式:HttpURLConnection以及HttpClient。不過由於HttpClient存在API數量過多、擴展困難等缺點,在Android 6.0系統中,HttpClient功能被完全移除。
二、HttpURLConnection的基本用法
- 獲取HttpURLConnection實例
創建一個URL對象,並傳入目標的網絡地址,然後調用openConnection()方法獲取HttpURLConnection對象實例。
- 設置請求方法
得到HttpURLConnection對象實例後,設置HTTP請求所使用的方法,常用的方法主要有兩個:GET和POST。GET表示希望從服務器獲取數據,POST表示希望提交數據給服務器。
- 設置請求頭
設置請求的請求頭,例如設置連接超時、讀取超時的毫秒數以及服務器希望得到的頭信息等。
- 獲取輸入流並讀取
使用getInputStream()方法獲取到服務器返回的輸入流,並對輸入流進行讀取。
- 關閉Http連接
當網絡請求結束之後,調用disconnect()方法關閉HTTP連接。
- 使用POST提交數據
對於想要使用POST方式提交數據給服務器的,使用setRequestMethod()方法設置請求方法爲POST,並在獲取輸入流之前調用getOutputStream()方法獲取輸出流,通過輸出流將POST的數據提交。
需要注意的是每條數據都要以鍵值對的形式存在,數據與數據之間用“&”符號隔開。
另外,當使用網絡請求時,由於在主線程中使用網絡請求會造成主線程阻塞,因此一般都是在子線程中進行網絡請求。
三、HttpsURLConnection
相比於HttpURLConnection,HttpsURLConnection的不同之處在於其作用於HTTPS協議,而HttpURLConnection作用於HTTP協議。
在用法上沒有較大的區別。
參考資料:《第一行代碼 Android 第2版》