Pengesahan Kuki Sebelah Pelayan dengan ByetHost
Isu
Apl Android sedang menghuraikan JSON data daripada pelayan ByetHost tetapi sebaliknya menerima nilai HTML. Isu ini dihadapi selepas berfungsi dengan betul sebelum ini.
Penyelesaian
ByetHost telah melaksanakan modul keselamatan anti-bot yang dipanggil testcookie-nginx-module. Modul ini mengesahkan permintaan HTTP menggunakan proses dua langkah:
Permintaan Awal:
Permintaan Seterusnya:
Punca Nilai HTML:
Apabila apl Android meminta data daripada pelayan ByetHost, ia tidak mempunyai kuki pengesahan yang diperlukan. Akibatnya, pelayan mengembalikan ubah hala JavaScript, yang dianggap sebagai HTML oleh apl.
Penyelesaian untuk Apl Android:
Dapatkan Kuki Pengesahan :
Tetapkan Kuki dalam Apl Android:
Tambahkan kod berikut pada permintaan HTTP dalam apl Android anda:
<code class="java">httpPost.addHeader("Cookie", "__test=THE_CONTENT_OF_YOUR_COOKIE_HERE; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/");</code>
Ganti "__test =THE_CONTENT_OF_YOUR_COOKIE_HERE" dengan nilai cookie sebenar.
Contoh Fail PHP:
<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>
Atas ialah kandungan terperinci Mengapakah apl Android saya menerima HTML dan bukannya data JSON daripada pelayan ByetHost, dan bagaimanakah saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!