问题描述
我一直在试图弄清楚如何发出包含多部分实体的http请求而感到沮丧。 多部分有一个自定义边界,但我似乎无法设置它。 我的下面代码导致响应消息说我的消息不包含多个部分。
HttpPut addDoc = new HttpPut(url);
addDoc.addHeader("Content-Type", "multipart/related; boundary=\"END_OF_PART\"");
String bodyString = "Test for multipart update";
String titleString = "Title Test for multipart update";
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
StringBody title = new StringBody(titleString, "application/atom+xml",Charset.forName("UTF-8"));
StringBody body = new StringBody(bodyString, "text/plain",Charset.forName("UTF-8"));
entity.addPart("title", title);
entity.addPart("body", body);
addDoc.setEntity(entity);
1楼
您可以尝试从代码中删除addHeader部分,并将构造函数更改为
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"));
2楼
首先,您可以尝试使用:
MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
这是初始化它的正确方法,然后:
addDoc.setEntity(entity.build());
至于边界,您不清楚是需要读取还是设置自定义边界,无论如何,自定义边界的设置方式如下:
multipartEntity.setBoundary("some-mimetype-boundary-unique-string");