2015-10-31
11:30 AM
基本上 HttpURLConnection 是會自動處理轉址動作的
但只有一個情況例外
就是 http 協定轉換為 https 協定時
此時由於安全性改變 預設會要求開發者提示使用者
但若要使用程式讀取網頁內容時將會導致無法取得正確的網頁內容
這時我們可以使用以下方式達成協定轉換時的自動轉址
只要加入一段轉址判斷即可
程式碼範例
- int statusCode = connection.getResponseCode();
- // https redirect
- if (statusCode == HttpURLConnection.HTTP_MOVED_TEMP || statusCode == HttpURLConnection.HTTP_MOVED_PERM
- || statusCode == HttpURLConnection.HTTP_SEE_OTHER){
- String newUrl = connection.getHeaderField("Location");
- String cookies = connection.getHeaderField("Set-Cookie");
- connection = (HttpURLConnection) new URL(newUrl).openConnection();
- connection.setRequestProperty("Cookie", cookies);
- }
各項資料連結
Android - HttpURLConnection 實作 HttpRequest 取得網頁內容(HTML, XML, JSON)
Android HttpURLConnection
No comments:
Post a Comment