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中文网其他相关文章!