首页 > Java > java教程 > Apache HttpClient 3.x 删除多部分支持后,如何在 Java 中创建多部分/表单数据 POST 请求?

Apache HttpClient 3.x 删除多部分支持后,如何在 Java 中创建多部分/表单数据 POST 请求?

DDD
发布: 2024-12-30 19:16:10
原创
642 人浏览过

How to Create Multipart/Form-Data POST Requests in Java After Apache HttpClient 3.x's Removal of Multipart Support?

Java 中的 multipart/form-data POST 请求

在 Java 中,使用 Apache Commons 创建 multipart/form-data POST 请求曾经是可行的HttpClient 版本 3.x。但是,此功能在版本 4.0 中已停止。

HttpClient 开发人员通过声明多部分处理超出了库的核心 HTTP 功能范围来证明此删除的合理性。他们建议寻找其他项目维护的多部分代码,但承认不知道任何此类项目。

使用 HttpClient 4.x 的解决方法

尽管删除了专用的多部分支持,有一些解决方法可以使用 HttpClient 4.x 创建多部分请求。下面是一个示例:

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

// Attach 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.3 开始,某些类已被弃用。更新后的API使用请参考官方文档。

以上是Apache HttpClient 3.x 删除多部分支持后,如何在 Java 中创建多部分/表单数据 POST 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!

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