Post 文件使用 httpclient fluent API

Post file using httpclient fluent API

我总是使用 httpclient fluent api 来 post 消息,因为代码非常干净。 示例:

String html = Request.Post("URL")
             .connectTimeout(2000).socketTimeout(2000)
             .bodyForm(Form.form().add("type", "image").build(), Charset.forName("UTF8"))
             .execute().returnContent().asString();

看了httpclient文档后,我发现了这个:

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.setCharset(Charset.forName(CHARSET));
builder.addBinaryBody("media", bytes, ContentType.MULTIPART_FORM_DATA, fileName);

问题是如何使用fluentAPI实现这个功能

我找到了 .bodyFile(new File(""), ContentType.MULTIPART_FORM_DATA) 但我不知道如何设置文件的表单参数名称。

HttpEntity entity = MultipartEntityBuilder.create()
        .setMode(HttpMultipartMode.BROWSER_COMPATIBLE)
        .setCharset(Charset.forName(CHARSET))
        .addBinaryBody("media", bytes, ContentType.MULTIPART_FORM_DATA, fileName)
        .build();
String html = Request.Post("URL")
        .connectTimeout(2000)
        .socketTimeout(2000)
        .body(entity)
        .execute().returnContent().asString();