JSON 문자열을 사용하여 HTML 값 '브라우저 확인'을 전달하는 ByetHost 서버: Android 앱 문제
문제:
Android 앱에서 JSON 문자열을 구문 분석하는 동안 HTML 값이 전달됩니다. 이 문제는 PHP 파일이 있는 ByetHost 서버에 액세스할 때 발생하지만 다른 서버에는 액세스할 수 없습니다.
해결 방법:
ByetHost는 다음을 추가하는 testcookie-nginx-module이라는 보안 모듈을 사용합니다. HTTP 요청에 대한 추가 유효성 검사 계층입니다. 이 모듈은 2단계 프로세스를 따릅니다.
Android 앱 구현:
Android 앱에서 문제를 해결하려면 다음 단계를 따르세요.
<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>
참고: cookieContent, cookieExpires 및 cookiePath를 브라우저에서 얻은 값으로 바꾸세요.
이렇게 수정하면 Android 앱에서 모든 HTTP 요청에 유효성 검사 쿠키를 사용하여 초기 HTML 리디렉션을 우회하고 JSON 데이터를 검색할 수 있도록 합니다.
위 내용은 ByetHost 서버에 액세스할 때 내 Android 앱이 JSON 대신 HTML을 수신하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!