Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Apl Android Saya Menerima HTML Daripada JSON daripada Pelayan ByetHost?

Mengapa Apl Android Saya Menerima HTML Daripada JSON daripada Pelayan ByetHost?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 05:16:02368semak imbas

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

Pelayan ByetHost Melepasi Nilai HTML "Menyemak Penyemak Imbas Anda" dengan JSON String

Masalah
Apabila cuba untuk menghuraikan rentetan JSON pada Android, nilai HTML dikembalikan. Isu mengejut ini menjejaskan semua halaman yang dihoskan pada pelayan ByetHost, manakala halaman yang dihoskan pada pelayan lain berfungsi dengan baik.

Penyelesaian

Isu ini timbul disebabkan oleh pelayan ByetHost yang melaksanakan ukuran anti-bot keselamatan modul testcookie-nginx. Modul ini menjalankan proses pengesahan dua langkah:

  1. Untuk permintaan HTTP pertama, modul mengembalikan coretan JavaScript dan bukannya respons JSON yang dijangkakan. Coretan ini menjana kuki pengesahan yang mengandungi kunci AES pada bahagian klien.
  2. Permintaan HTTP seterusnya dengan kuki yang dijana membenarkan akses kepada respons JSON yang diingini.

Langkah-langkah untuk Menyelesaikan Isu untuk Apl Android

  1. Dapatkan Kunci Kuki daripada Penyemak Imbas Web:

    • Akses URL ByetHost dalam penyemak imbas web.
    • Semak tetapan kuki penyemak imbas dan perhatikan kuki "__test".
    • Salin nilai untuk "kandungan," "laluan" dan "tamat tempoh" daripada "__test" " cookie.
  2. Tetapkan Kuki pada Apl Android:

Dalam kod permintaan HTTP apl anda, tambahkan pengepala di bawah untuk memasukkan kuki "__test":

<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 "THE_CONTENT_OF_YOUR_COOKIE_HERE" dengan nilai "kandungan" yang diperoleh dalam langkah 1.

Dengan perubahan ini, apl Android akan menyertakan " kuki __test" dalam permintaan HTTPnya, membenarkannya mengakses respons JSON yang dikehendaki daripada pelayan ByetHost.

Atas ialah kandungan terperinci Mengapa Apl Android Saya Menerima HTML Daripada JSON daripada Pelayan ByetHost?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn