2017-11-16 12 views
1

Content-Typeapplication/jsonに設定したHTTP POSTリクエストとUTF-16でエンコードされたファイルであるボディを送信しようとしています。HttpURLConnectionを使用してPOSTリクエストを送信しています - リクエストボディはUTF16をエンコードするファイルです - JAVA

しかし、私はエラーを取得する:私は郵便配達を経由して要求を送信する場合code = 400

、それは(code = 200)が動作します。

私はファイルを正しく追加していないと思います。私はどうしたらいい?

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

あなたのファイルはUTF-16エンコーディングで保存されていることを確認してください? –

+0

私はそれをしました: conn.setRequestProperty( "charset"、 "utf-16"); それは動作しません。 –

+0

私は、問題が他の端にあるかどうかをテストするために、postmanを使用します...問題は先行バイトから来る可能性があります。いくつかの文書は、それらが義務的であり、他は禁じられていると述べています。 –

答えて

1

文字セットを追加することについて何

関連する問題