首页 > Java > java教程 > 如何使用 HttpClient 在 Java 中发出多部分/表单数据 POST 请求?

如何使用 HttpClient 在 Java 中发出多部分/表单数据 POST 请求?

Mary-Kate Olsen
发布: 2024-12-16 11:34:16
原创
840 人浏览过

How to Make Multipart/Form-Data POST Requests in Java Using HttpClient?

使用 Java 发出多部分表单数据 POST 请求

Apache Commons HttpClient 版本 4.0 的出现消除了执行多部分/表单数据 POST 请求的能力在 3.x 版本中是可能的。 HttpClient 团队解释说,多部分功能超出了他们的核心活动范围,并建议寻找替代库。

寻找合适的 Java 库

问题是哪个Java 库提供多部分/表单数据 POST 请求功能。 HttpClient 4.x 就是这样一个库,它为发出这些请求提供了全面的解决方案。

更新了 HttpClient 4.3 代码

使用 HttpClient 版本 4.3 及更高版本,API已更新并且某些类已被弃用。以下代码片段说明了制作多部分文件帖子的修订方法:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);

// This attaches the file to the POST:
File f = new File("[/path/to/upload]");
builder.addBinaryBody(
    "file",
    new FileInputStream(f),
    ContentType.APPLICATION_OCTET_STREAM,
    f.getName()
);

HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();
登录后复制

已弃用的 HttpClient 4.0 代码(供参考)

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);

FileBody bin = new FileBody(new File(fileName));
StringBody comment = new StringBody("Filename: " + fileName);

MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
reqEntity.addPart("comment", comment);
httppost.setEntity(reqEntity);

HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
登录后复制

使用这些库,开发人员可以无缝创建能够发出多部分/表单数据 POST 请求的 HTTP 客户端,使他们能够与需要此类请求的 Web 服务和 API 进行交互请求格式。

以上是如何使用 HttpClient 在 Java 中发出多部分/表单数据 POST 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板