【发布时间】:2014-08-29 12:18:39
【问题描述】:
我正在尝试向 JAVA 中的本地服务器发送 HTTP Post Multipart 请求。我正在尝试发送以下内容:
{
"content-disposition": "form-data; name=\"metadata\"",
"content-type": "application/x-dmas+json",
"body": JSON.stringify(client_req)
},
{
"content-disposition": "attachment; filename=\"" + file + "\"; name=\"file\"",
"content-type": "application/octet-stream",
"body": [file content]
}
我研究了 Apache HTTP 组件,但它不允许我为每个部分指定内容类型和配置。以下是我使用 Apache HTTP API 在 JAVA 中编写的内容:
`CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpPost httppost = new HttpPost("IP");
FileBody bin = new FileBody(new File(args[0]), "application/octet-stream");
StringBody hash = new StringBody("{\"hash\": \"\", \"policy\": {\"retention_permitted\": true, \"distribution\": \"global\"}}", ContentType.create("application/x-dmas+json"));
HttpEntity reqEntity = MultipartEntityBuilder.create()
.addPart("metadata", hash)
.addPart("file", bin)
.build();
httppost.setEntity(reqEntity);
`
【问题讨论】:
-
那不是 Java 而是 JavaScript。向我们展示相关的 Java 代码。
-
不过,我希望能够在 JAVA 中为每个部分设置 content-type 和 content-disposition。
标签: java http multipartform-data