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();
我总是使用 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();