我应该为 MultipartEntity 设置 Content-Type header 吗?

Should I set the Content-Type header for a MultipartEntity?

我有一小段代码提交了一个 XML 实体以及同一个 POST 中的二进制数据。为此,我正在使用 httpclienthttpmime

我不太确定是否应该为此请求设置 Content-Type header。毕竟,Content-Type 既是 application/xml 又是 application/octet-stream

这个的正确用法是什么?

    post = new HttpPost(uri);
    post.setHeader("Authorization", auth);

    // Should I set Content-Type at all?
    post.setHeader("Content-Type", mimeType + ";charset=UTF-8");

    MultipartEntityBuilder b = MultipartEntityBuilder.create();
    b.addTextBody("data", payload, ContentType.APPLICATION_XML);
    b.addBinaryBody("file", file);
    post.setEntity(b.build());

不,你不应该。您应该让 HttpClient 根据消息实体的属性自动生成 Content-Type 以及其他内容元数据 headers。