首頁 >後端開發 >php教程 >為什麼我的 Android 應用程式從 ByetHost 伺服器接收 HTML 而不是 JSON?

為什麼我的 Android 應用程式從 ByetHost 伺服器接收 HTML 而不是 JSON?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-28 05:16:02322瀏覽

Why is My Android App Receiving HTML Instead of JSON from a ByetHost Server?

ByetHost 伺服器使用JSON 字串傳遞HTML 值「檢查您的瀏覽器」

問題

問題 嘗試時在Android 上解析JSON 字串,而是傳回HTML 值。這個突然的問題會影響 ByetHost 伺服器上託管的所有頁面,而其他伺服器上託管的頁面可以正常運作。

解決方案
  1. 該問題的出現​​是由於 ByetHost 伺服器實現了testcookie-nginx-module 安全反機器人措施。此模組執行兩步驟驗證程序:
對於第一個 HTTP 請求,模組會傳回 JavaScript 片段而不是預期的 JSON 回應。此程式碼片段會在用戶端產生一個包含 AES 金鑰的驗證 cookie。

使用產生的 cookie 的後續 HTTP 請求允許存取所需的 JSON 回應。

  1. 步驟解決Android 應用程式的問題

    • 從Web 瀏覽器取得Cookie 金鑰:
    • 訪問ByetHost URL在網頁瀏覽器中。
    檢查瀏覽器的 cookie 設定並記下「__test」cookie。
  2. 從「__test」複製「內容」、「路徑」和「過期」的值" cookie.

在Android 應用程式中設定Cookie:

<code class="java">httpPost.addHeader("Cookie", "__test=THE_CONTENT_OF_YOUR_COOKIE_HERE; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/");</code>

在您應用的HTTP 請求代碼中加入header下麵包含「__test」cookie:

將「THE_CONTENT_OF_YOUR_COOKIE_HERE」獲取為「步驟」值。透過這些更改,Android 應用程式將包含「__test" cookie 在其HTTP 請求中,允許它從ByetHost 伺服器存取所需的JSON 回應。

以上是為什麼我的 Android 應用程式從 ByetHost 伺服器接收 HTML 而不是 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn