ホームページ > バックエンド開発 > PHPチュートリアル > Android アプリが ByetHost サーバーから JSON ではなく HTML を受信するのはなぜですか?

Android アプリが ByetHost サーバーから JSON ではなく HTML を受信するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-28 05:16:02
オリジナル
324 人が閲覧しました

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

ByetHost サーバーが JSON 文字列で HTML 値「ブラウザを確認しています」を渡す

問題
を試行したときAndroid で JSON 文字列を解析すると、代わりに HTML 値が返されます。この突然の問題は、ByetHost サーバーでホストされているすべてのページに影響しますが、他のサーバーでホストされているページは正常に動作します。

解決策

この問題は、ByetHost サーバーがtestcookie-nginx-module セキュリティのボット対策。このモジュールは、2 段階の検証プロセスを実行します。

  1. 最初の HTTP リクエストでは、モジュールは予期される JSON 応答の代わりに JavaScript スニペットを返します。このスニペットは、クライアント側で AES キーを含む検証 Cookie を生成します。
  2. 生成された Cookie を使用した後続の HTTP リクエストにより、必要な JSON 応答へのアクセスが可能になります。

手順Android アプリの問題を解決するには

  1. Web ブラウザから Cookie キーを取得します:

    • ByetHost URL にアクセスしますWeb ブラウザで。
    • ブラウザの Cookie 設定を確認し、「__test」Cookie をメモします。
    • 「__test」から「content」、「path」、「expires」の値をコピーします。 " cookie.
  2. Android アプリに Cookie を設定します:

アプリの HTTP リクエスト コードにヘッダーを追加します「__test」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>
ログイン後にコピー

「THE_CONTENT_OF_YOUR_COOKIE_HERE」を手順 1 で取得した「content」値に置き換えます。

これらの変更により、Android アプリには「 __test" Cookie を HTTP リクエストに組み込むことで、ByetHost サーバーからの必要な JSON レスポンスにアクセスできるようになります。

以上がAndroid アプリが ByetHost サーバーから JSON ではなく HTML を受信するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート