Uzak bir sunucudan bazı JSON nesnelerini getirmem gerekiyor ve bunun için, bazı garip veriler elde edildiğini düşündüğüm dışında, bu harika işlevden yararlanıyorum. kodlamak için ASCII karakter kümesi kullanmaktadır.Java'da HTTP yanıtında karakter dizisi kodlamasını nasıl değiştirebilirim?
i olan doğru geçirerek
public HttpResponse call(String serviceURL,String serviceHost,String namespace,String methodName,String payloadKey, String payloadValue) throws ClientProtocolException,IOException,JSONException
{
HttpResponse response = null;
HttpContext HTTP_CONTEXT = new BasicHttpContext();
HTTP_CONTEXT.setAttribute(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0");
HttpPost httppost = new HttpPost(serviceURL);
httppost.setHeader("User-Agent",Constants.USER_AGENT_BROWSER_FIREFOX);
httppost.setHeader("Accept", "application/json, text/javascript, */*");
httppost.setHeader("Accept-Language","en-US,en;q=0.8");
httppost.setHeader("Content-Encoding", "foo-1.0");
httppost.setHeader("Content-Type", "application/json; charset=UTF-8");
httppost.setHeader("X-Requested-With","XMLHttpRequest");
httppost.setHeader("Host",serviceHost);
httppost.setHeader("X-Foo-Target", String.format("%s.%s", namespace,methodName));
/*Making Payload*/
JSONObject objectForPayload = new JSONObject();
objectForPayload.put(payloadKey, payloadValue);
StringEntity stringentity = new StringEntity(objectForPayload.toString());
httppost.setEntity(stringentity);
response = client.execute(httppost);
return response;
}
Tüm bu başlıkları kullandığımı thw yönteminin altında bulup seni Mozilla aşina değilseniz Google krom veya Kundakçı eklenti öğeyi denetle aracılığıyla aynı doğruladıktan Lütfen .
Sorun şu ki, çoğu zaman okunabilir verileri alıyorum ancak bazen okunamayan veriyi alıyorum.
Tutulma kullanarak hata ayıklama yaptım ve wrappedEntity altındaki karakter dizisinin "US-ASCII" olarak gösterildiğini fark ettim.
Referans için jpg'yi ekliyorum Birisi lütfen bana response = client.execute(httppost);
yapmadan önce yanıtın ASCII'den UTF-8'e nasıl değiştirebileceğimi söyleyin. PS: Başlıkta charset = utf-8 geçtiğimi ve tam olarak üstbilgileri iletdiğim firebug ve google chrome kullanarak doğrulamayı yaptığımı fark ettiniz.
önceden daha net
Teşekkür resmi görmek için lütfen yakınlaştırın
Bunu denedim ama aynı sonucu çalışmadı 'httppost.setHeader (" Accept-Encoding "," UTF-8 ");' – bourne