java - 当提供文件内容的字节流时定义文件体

标签 java httpclient multipartform-data apache-httpcomponents

我正在尝试使用 apache http 客户端 v4.x。

对于特定情况,我必须提出多部分表单请求...

使用以下代码在 java 中发出多部分表单请求--

HttpPost httppost = new HttpPost("http://localhost:8080" + "/servlets-examples/servlet/RequestInfoExample");

FileBody bin = new FileBody(new File(args[0]));
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);

在我的例子中,我有可用的文件主体的字节流,

byte[] bytes = value.toBinary(charset);

现在我想将此文件(字节流)添加到多部分实体,以便我可以发出多部分发布请求...我该怎么做?

最佳答案

Using ByteArrayBody

byte[] bytes = value.toBinary(charset);
ContentBody bin = new ByteArrayBody(bytes, "myfile.dat");
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);

关于java - 当提供文件内容的字节流时定义文件体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045703/

相关文章:

jquery - 如何使用 jquery 提交多部分表单数据

java - Jersey 多方返回 NoClassDefFoundError : org/glassfish/jersey/internal/inject/ExtractorException

java - 将 Floyd-Warshall 限制为路径长度 k

java - 将文本放在动画 GIF 上并将其另存为新的 GIF

java - 向我解释一下这些构造函数在这个程序中做了什么?

azure - 使用 go - azure 上传 blob

java - 查找谷歌地图上是否存在叠加层

angular - 从 Angular 4.3+ 的 302(重定向)响应中检索 header

ios - Xamarin.iOS-无法安装软件包'System.Net.Http 4.0.0',该软件包不包含任何程序集引用

java - HTTP 416,请求的范围无法满足