Search

Android - 使用 HttpURLConnection 自動轉址失效的解決方式

2015-10-31 11:30 AM

基本上 HttpURLConnection 是會自動處理轉址動作的

但只有一個情況例外

就是 http 協定轉換為 https 協定時

此時由於安全性改變 預設會要求開發者提示使用者

但若要使用程式讀取網頁內容時將會導致無法取得正確的網頁內容

這時我們可以使用以下方式達成協定轉換時的自動轉址

只要加入一段轉址判斷即可

程式碼範例
  1. int statusCode = connection.getResponseCode();
  2.  
  3. // https redirect
  4. if (statusCode == HttpURLConnection.HTTP_MOVED_TEMP || statusCode == HttpURLConnection.HTTP_MOVED_PERM
  5. || statusCode == HttpURLConnection.HTTP_SEE_OTHER){
  6. String newUrl = connection.getHeaderField("Location");
  7. String cookies = connection.getHeaderField("Set-Cookie");
  8. connection = (HttpURLConnection) new URL(newUrl).openConnection();
  9. connection.setRequestProperty("Cookie", cookies);
  10. }
各項資料連結
Android - HttpURLConnection 實作 HttpRequest 取得網頁內容(HTML, XML, JSON)
Android HttpURLConnection

No comments:

Post a Comment