我想将一些文件上传到 HTTP 服务器。基本上我需要的是某种带有一些参数和文件的对服务器的 POST 请求。我已经看到了仅上传文件的示例,但没有找到如何传递其他参数。
这样做的最简单和免费的解决方案是什么?有人有我可以研究的文件上传示例吗?我已经在谷歌上搜索了几个小时,但是(也许这只是其中的一天)找不到我需要的确切内容。最好的解决方案是不涉及任何第三方类或库的东西。
原文由 Marius 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想将一些文件上传到 HTTP 服务器。基本上我需要的是某种带有一些参数和文件的对服务器的 POST 请求。我已经看到了仅上传文件的示例,但没有找到如何传递其他参数。
这样做的最简单和免费的解决方案是什么?有人有我可以研究的文件上传示例吗?我已经在谷歌上搜索了几个小时,但是(也许这只是其中的一天)找不到我需要的确切内容。最好的解决方案是不涉及任何第三方类或库的东西。
原文由 Marius 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是使用 Apache HttpClient 的方法(此解决方案适用于那些不介意使用第 3 方库的人):
HttpEntity entity = MultipartEntityBuilder.create()
.addPart("file", new FileBody(file))
.build();
HttpPost request = new HttpPost(url);
request.setEntity(entity);
HttpClient client = HttpClientBuilder.create().build();
HttpResponse response = client.execute(request);
原文由 Emmanuel Bourg 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
您通常会使用
java.net.URLConnection
来触发 HTTP 请求。您通常还使用multipart/form-data
混合 POST 内容(二进制和字符数据)的编码。单击该链接,它包含信息和如何multipart/form-data
请求正文的示例。该规范在 RFC2388 中有更详细的描述。这是一个启动示例:
当您使用 Apache Commons HttpComponents Client 之 类的 3rd 方库时,此代码不那么冗长。
Apache Commons FileUpload 正如一些错误的建议在这里只对 服务器端 感兴趣。您不能在客户端使用也不需要它。
也可以看看