Pelayan ByetHost Melepasi Nilai HTML 'Menyemak Penyemak Imbas Anda' dengan JSON String: Isu Apl Android
Masalah:
Semasa menghuraikan rentetan JSON dalam apl Android, nilai HTML sedang dihantar. Isu ini berlaku apabila mengakses pelayan ByetHost dengan fail PHP, tetapi bukan pelayan lain.
Penyelesaian:
ByetHost menggunakan modul keselamatan yang dipanggil testcookie-nginx-module yang menambah lapisan tambahan pengesahan kepada permintaan HTTP. Modul ini mengikuti proses dua langkah:
Pelaksanaan Apl Android:
Untuk menyelesaikan isu dalam apl Android, ikut langkah berikut:
<code class="java">try { if (post == "POST") { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(loginUrl); httpPost.setEntity(new UrlEncodedFormEntity(para)); httpPost.setHeader("User-Agent", "Mozilla/5.0 ..."); httpPost.addHeader("Cookie", "__test=" + cookieContent + "; expires=" + cookieExpires + "; path=" + cookiePath); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } else if (post == "GET") { HttpClient httpClient = new DefaultHttpClient(); String paramString = URLEncodedUtils.format(para, "utf-8"); loginUrl += "?" + paramString; HttpGet httpGet = new HttpGet(loginUrl); httpGet.addHeader("Cookie", "__test=" + cookieContent + "; expires=" + cookieExpires + "; path=" + cookiePath); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } }</code>
Nota: Gantikan cookieContent, cookieExpires dan cookiePath dengan nilai yang anda perolehi daripada penyemak imbas.
Pengubahsuaian ini akan memastikan bahawa apl Android anda dihantar kuki pengesahan dengan setiap permintaan HTTP, memintas ubah hala HTML awal dan membenarkannya untuk mendapatkan semula data JSON.
Atas ialah kandungan terperinci Mengapa Apl Android Saya Menerima HTML Daripada JSON Apabila Mengakses Pelayan ByetHost?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!