java.net.HttpURLConnection類是另外一種訪問HTTP資源的方式.HttpURLConnection類具有完全的訪問能力,可以取代HttpGet類和HttpPost類.使用HttpUrlConnection訪問HTTP資源可以使用如下六步:
(1)使用java.net.URL封裝HTTP資源的url,並使用openConnection方法獲得HttpUrlConnection對象,代碼如下:
URL url = new URL(http://www.blogjava.net/nokiaguy/archive/2009/12/14/305890.html);
HttpURLConnection httpURLConnection = (HttpURLConnecton) url.openConnection();
(2)設定請求方法,例如GET,POST等,代碼如下:
httpURLConnection.setRequestMethod("POST");
要注意的是,setRequestMethod方法的參數值必須大寫,例如GET,POST等.
(3)設定輸入輸出及其他許可權.如果要下載HTTP資源或向服務端上傳數據,需要使用如下代碼進行設定.
下載HTTP資源,需要將setDoInput方法的參數值設為true
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
HttpURLConnection類還包含更多的選項,例如,使用下面的代碼可以禁止HttpURLConnection使用快取.
httpURLConnection.setUseCaches(false);
(4)設定http請求頭.在很多情況下,要根據實際情況設定一些HTTP請求頭,例如下面的代碼設定了Charset請求頭的值為UTF-8.
httpURLConnection.setRequestProperty("Charset","UTF-8");
(5)輸入和輸出數據.這一步是對HTTP資源的讀寫操作.也就是通過InputStream和OutputStream讀取和寫入數據.下面的代碼獲得了InputStream對象和OutputStream對象.
InputStream is = httpURLConnection.getInputStream();
OutputStream os = httpURLConnection.getOutputStream();
至於是讀取還是先寫入數據,需要根據具體情況而定.
(6)關閉輸入和輸出流.雖然關閉輸入輸出流並不是必需的,在應用程式結束後,輸入輸出流會自動關閉,但顯示關閉輸入輸出流是一個好習慣.關閉輸入輸出流的代碼如下:
is.close();
os.close();