서버에서 json 결과를 수신 할 때 이상한 문제가 발생합니다. 나는 그 문제가 뭔지 전혀 모른다. 문제는 내 String json 결과가 이상한 기호로 손상되었음을 나타냅니다.Android에서 손상된 Json
결과는 (이클립스 디버그에서 촬영)이 같다
이미지 :
입니다 일어나는 또 다른 이상한 것은 그 내가 하나의 대안으로 서비스의 URL을 변경할 때, 작동하고 데이터가 손상되지 않습니다. URL은 동일하지만 한 번만 다른 URL로 리디렉션됩니다. URL은 사용이 항상 작동하는 URL이 유일하게이하지 (보안상의 이유로 정확한 링크를 게시하지 못할)
두 번째는 첫 번째로 모든 리디렉션 http://www.hello.com.uy
입니다 http://www.hello.com
(예)입니다. 여기에 나는 또한 확인하기 위해 크롬에서 데브 HTTP 클라이언트 확장을 사용하여 시도 (URL 중 하나가 주석과) 코드
이며,
나는 UTF-8 인코딩을 변경 시도하고 그것은 여전히 작동하지 않습니다 서비스 및 그것은 잘 작동, 손상된 데이터가 없습니다. 또한, 그것은 iOS에서 완벽하게 작동하기 때문에 나는 그것의 just and android/java 문제를 생각합니다.
DevClient : JSON에 대한
try {
JSONObject json = new JSONObject();
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
HttpClient client = new DefaultHttpClient(httpParams);
//String url = TAG_BASEURL_REST +"Sucursal";
String url = "http://www.-------.com/rest/Sucursal";
//String url = "http://www.--------.com.uy/rest/Sucursal";
HttpGet request = new HttpGet(url);
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
String jsonRes = sb.toString();
JSONArray jObj = new JSONArray(jsonRes);
return jObj;
}
} catch (Throwable t) {
Log.i("Error", "Request failed: " + t.toString(), t);
}
return null;
사용 JSON 보풀. –
인쇄 콘텐츠 어쩌면 응답은 gzip 또는 deflated – Selvin
실제로 콘텐츠 인코딩은 gzip, 당신은 또한 dev 클라이언트의 이미지에서 볼 수 있습니다. 여기 엔 entity.getContentEnconding() .ToString()이 "Content-Encoding : gzip"을 반환했습니다. – klifa