使用 HttpURLConnection 发送 POST 请求 - 请求正文是一个编码为 UTF16 的文件 - JAVA

Sending a POST request using HttpURLConnection - request body is a file that encodes UTF16 - JAVA

我正在尝试发送一个 HTTP POST 请求,Content-Type 设置为 application/json,正文是一个用 UTF-16 编码的文件。

但是,我得到一个错误: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;

确保您的文件以 utf 16 编码保存