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