Heim > Backend-Entwicklung > PHP-Tutorial > Warum empfängt meine Android-App HTML statt JSON von einem ByetHost-Server?

Warum empfängt meine Android-App HTML statt JSON von einem ByetHost-Server?

Mary-Kate Olsen
Freigeben: 2024-10-28 05:16:02
Original
324 Leute haben es durchsucht

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

ByetHost-Server übergibt HTML-Werte „Überprüft Ihren Browser“ mit JSON-String

Problem
Beim Versuch Beim Parsen einer JSON-Zeichenfolge auf Android werden stattdessen HTML-Werte zurückgegeben. Dieses plötzliche Problem betrifft alle auf dem ByetHost-Server gehosteten Seiten, während auf anderen Servern gehostete Seiten ordnungsgemäß funktionieren.

Lösung

Das Problem entsteht dadurch, dass der ByetHost-Server das implementiert testcookie-nginx-module Sicherheits-Anti-Bot-Maßnahme. Dieses Modul führt einen zweistufigen Validierungsprozess durch:

  1. Für die erste HTTP-Anfrage gibt das Modul ein JavaScript-Snippet anstelle der erwarteten JSON-Antwort zurück. Dieses Snippet generiert auf der Clientseite ein Validierungscookie, das einen AES-Schlüssel enthält.
  2. Nachfolgende HTTP-Anfragen mit dem generierten Cookie ermöglichen den Zugriff auf die gewünschte JSON-Antwort.

Schritte um das Problem für Android-Apps zu beheben

  1. Besorgen Sie sich den Cookie-Schlüssel von einem Webbrowser:

    • Greifen Sie auf die ByetHost-URL zu in einem Webbrowser.
    • Überprüfen Sie die Cookie-Einstellungen des Browsers und notieren Sie sich das „__test“-Cookie.
    • Kopieren Sie die Werte für „content“, „path“ und „expires“ aus dem „__test“. " Cookie.
  2. Setzen Sie das Cookie in der Android-App:

Fügen Sie im HTTP-Anforderungscode Ihrer App einen Header hinzu unten, um das „__test“-Cookie einzuschließen:

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

Ersetzen Sie „THE_CONTENT_OF_YOUR_COOKIE_HERE“ durch den in Schritt 1 erhaltenen „content“-Wert.

Mit diesen Änderungen enthält die Android-App das „ __test“-Cookie in seinen HTTP-Anfragen ein, was ihm den Zugriff auf die gewünschten JSON-Antworten vom ByetHost-Server ermöglicht.

Das obige ist der detaillierte Inhalt vonWarum empfängt meine Android-App HTML statt JSON von einem ByetHost-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage