2015-10-25 11 views
11

Hier ist für Kopf meinen Code der InputAndroid HttpURLConnection Antwort zurückgibt Müll

mResponseCode = connection.getResponseCode(); 

mError = mResponseCode != 200 && mResponseCode != 201 && mResponseCode != 202; 

if (mError) { 
    inputStream = connection.getErrorStream(); 
} else { 
    inputStream = connection.getInputStream(); 
} 
inputStreamReader = new InputStreamReader(inputStream); 
bufferedReader = new BufferedReader(inputStreamReader); 

String inputLine; 
final StringBuilder builder = new StringBuilder(); 

while ((inputLine = bufferedReader.readLine()) != null) 
    builder.append(inputLine); 

resultStr = builder.toString(); 

aber die Zeichenfolge zurückgibt Müll Werte wie diese „}“

Die Antwort-Header enthält Content-Type: application/json; charset=UTF-8 so habe ich versucht,

inputStreamReader = new InputStreamReader(inputStream, Charset.forName("UTF-8")); 

Zugabe aber nicht helfen.

funktioniert es perfekt auf Briefträger, damit ich weiß, dass etwas nicht mit dem Service falsch ist.

Kann jemand Hilfe anbieten?

+3

vielleicht ist es zip. – Ali

+0

Meinen Sie die zurückgegebenen Daten? –

+0

Was ist die Inhaltscodierung, die Sie von der Antwort erhalten? – QuakeCore

Antwort

3

Einige Service versuchen, Daten, die sie mit Hilfe von Kopfparameter wie produzieren zu komprimieren:

Content-Encoding: SomeKindOfEncoding

So deaktivieren Sie diese Funktion versuchen, das akzeptieren zu setzen Codierung:

connection.setRequestProperty("Accept-Encoding", "identity"); 

Wenn Sie einige Übertragungsdaten auf dem Mobiltelefon speichern möchten, verwenden Sie Folgendes:

connection.setRequestProperty("Accept-Encoding", "gzip"); //optional forcing gzip 
//... 
inputStream = new GZIPInputStream(connection.getInputStream()); 
//rest of the code  
+1

yep, es sieht aus wie zip zu mir . Zumindest könnte OP bestätigen, ob es einen Kompressionskopf gibt oder ob diese Antwort funktioniert – Fabio

Verwandte Themen