2016-10-17 4 views
1

Ich verwende unten Code, um einige Daten zu posten, aber ich finde In einigen Server die Antwort-String ist verstümmelt (nicht alle Server).Einige Server verstümmelt, wenn Sie UrlConnection verwenden?

URL url = new URL("http://url"); 
    HttpURLConnection connection = (HttpURLConnection) url 
     .openConnection(); 
    connection.setDoOutput(true); 
    connection.setDoInput(true); 
    connection.setRequestMethod(method); 
    connection.setUseCaches(false); 
    connection.setInstanceFollowRedirects(true); 
    connection.setRequestProperty("Accept-Charset", String_UTF_8); 
    connection.setRequestProperty("contentType", String_UTF_8); 
    connection.connect(); 
    PrintWriter out = new PrintWriter(newOutputStreamWriter(connection.getOutputStream(),String_UTF_8)); 
    out.println(json); 
    out.close(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), String_UTF_8)); 
    String lines; 
    while ((lines = reader.readLine()) != null) { 
     lines = new String(lines.getBytes()); 
     sb.append(lines); 
    } 
    reader.close(); 
    connection.disconnect(); 

Ich habe viele Möglichkeiten ausprobiert, aber alle haben keinen Effekt.

+0

Was ist 'String_UTF_8'? Entfernt 'lines = new String (lines.getBytes());' Aus Ihrem Code ist es nutzlos, da Sie bereits eine 'Zeichenfolge' haben. –

+0

@ NicolasFilotto, entfernen Sie die Zeile, und das Problem ist gelöst.Sie ​​sollten die Frage statt einen Kommentar beantworten. –

Antwort

0

Verwenden String#getBytes() nicht, dass es Ihre String mit der -Plattform Standard-charset die dekodieren bedeutet, dass es plattformabhängig ist. Außerdem, wie Sie bereits Ihren Stream-Inhalt als String mit UTF-8 als Zeichensatz entschlüsselt haben, ist es sogar unbrauchbar.

dies stattdessen versuchen:

try (BufferedReader reader = new BufferedReader(
    new InputStreamReader(connection.getInputStream(), String_UTF_8)) 
) { 
    String lines; 
    while ((lines = reader.readLine()) != null) { 
     sb.append(lines); 
    } 
} 
Verwandte Themen