设置浏览器模式
MultipartEntityBuilder builder = MultipartEntityBuilder.create().setCharset(Charset.forName("UTF-8")).setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addTextBody("timestamp", System.currentTimeMillis() + "", ContentType.DEFAULT_TEXT);
builder.addBinaryBody("material[1].data", new File("gif图片.gif"), ContentType.create("image/gif"), "gif素材1.gif");
源码
protected void formatMultipartHeader(
final FormBodyPart part, final OutputStream out) throws IOException {
final Header header = part.getHeader();
switch (this.mode) {
case BROWSER_COMPATIBLE:
// For browser-compatible, only write Content-Disposition
// Use content charset
final MinimalField cd = header.getField(MIME.CONTENT_DISPOSITION);
writeField(cd, this.charset, out);
final String filename = part.getBody().getFilename();
if (filename != null) {
final MinimalField ct = header.getField(MIME.CONTENT_TYPE);
writeField(ct, this.charset, out);
}
break;
default:
for (final MinimalField field: header) {
writeField(field, out);
}
}
}