2017-11-16 4 views
1

Ich möchte eine HTTP POST Anfrage senden, mit auf application/json gesetzt, und ein Körper, der eine Datei mit UTF-16 kodiert ist.Senden einer POST-Anfrage mithilfe von HttpURLConnection - Anfragetext ist eine Datei, die UTF16 codiert - JAVA

Aber ich erhalte eine Fehlermeldung: code = 400

Wenn ich die Anfrage per Postbote senden, es funktioniert (code = 200).

Ich denke, ich füge die Datei nicht richtig hinzu. Wie soll ich das machen?

try { 
    byte[] postData = readFile(new File(path)); 
    URL url   = new URL(request); 
    HttpURLConnection conn= (HttpURLConnection) url.openConnection(); 
    conn.setDoOutput(true); 
    conn.setRequestMethod("POST"); 
    conn.setRequestProperty("Content-Type", "application/json"); 
    try(DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) { 
     wr.write(postData); 
    } 
    int i = conn.getResponseCode(); // i = 400; 
} catch (IOException e) {} 
return null; 
+0

was charset über das Hinzufügen? –

+0

Ich tat das: conn.setRequestProperty ("charset", "utf-16"); Es funktioniert nicht .. –

+0

Ich würde Postman verwenden, um zu testen, ob das Problem am anderen Ende ist ... Problem kann von führenden Bytes kommen. Einige Dokumente geben an, dass sie obligatorisch sind und andere, dass sie verboten sind. –

Antwort

1

Sicherstellen, dass die Dateien in UTF-16-Codierung gespeichert

Verwandte Themen