Serverseitige Cookie-Validierung mit ByetHost
Problem
Eine Android-App analysiert JSON Daten von einem ByetHost-Server, empfängt aber stattdessen HTML-Werte. Dieses Problem tritt auf, nachdem es zuvor ordnungsgemäß funktioniert hat.
Lösung
ByetHost hat ein Anti-Bot-Sicherheitsmodul namens testcookie-nginx-module implementiert. Dieses Modul validiert HTTP-Anfragen mithilfe eines zweistufigen Prozesses:
Erste Anfrage:
Nachfolgende Anfragen:
Ursache der HTML-Werte:
Wenn die Android-App Daten vom ByetHost-Server anfordert, fehlt ihr das erforderliche Validierungscookie. Als Ergebnis gibt der Server die JavaScript-Umleitung zurück, die von der App als HTML behandelt wird.
Lösung für Android-App:
Besorgen Sie sich das Validierungs-Cookie :
Setzen Sie das Cookie in der Android-App:
Fügen Sie den folgenden Code zur HTTP-Anfrage in Ihrer Android-App hinzu:
<code class="java">httpPost.addHeader("Cookie", "__test=THE_CONTENT_OF_YOUR_COOKIE_HERE; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/");</code>
Ersetzen Sie „__test =THE_CONTENT_OF_YOUR_COOKIE_HERE" mit dem tatsächlichen Cookie-Wert.
PHP-Dateibeispiel:
<code class="php"><?php // Database connection $result = mysqli_query($con, "SELECT * FROM `pj_medionline_mst_stockist` ORDER BY `ID` ASC"); $response = array(); $posts = array(); while ($row = mysqli_fetch_array($result)) { $posts[] = array( 'id' => $row["ID"], 'stkcode' => $row["stkcode"], 'stkname' => $row["ComName"], 'operatorid' => $row["operatorid"], 'password' => $row["Password"] ); } $response['stokist'] = $posts; print(json_encode($response)); ?></code>
Das obige ist der detaillierte Inhalt vonWarum empfängt meine Android-App HTML- statt JSON-Daten von einem ByetHost-Server und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!