使用java中的http客户端将Byte数组作为文件发送

Hos*_*asr 4 java bytearray httpclient

我们有文件的字节数组,我们想把它作为文件上传. FileBody只获取File参数,但我们有一个字节数组.

一种解决方案是将字节数组保存到文件中,然后发送它,但它不适合我.

byte b[]= new byte[1000];
//fill b
MultipartEntity form = new MultipartEntity();
form.addPart("file", new FileBody(/* b? */));
Run Code Online (Sandbox Code Playgroud)

谢谢.

Aru*_*hny 10

你可以做点什么

HttpClient client=null;
byte b[]= new byte[1000];
MultipartEntity form = new MultipartEntity();
ContentBody cd = new InputStreamBody(new ByteArrayInputStream(b), "my-file.txt");
form.addPart("file", cd);

HttpEntityEnclosingRequestBase post = new HttpPost("");//If a PUT request then `new HttpPut("");`
post.setEntity(form);
client.execute(post);
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用ByteArrayBody代替 InputStreamBody 或 FileBody。

HttpClient client=null;
byte b[]= new byte[1000];
MultipartEntity form = new MultipartEntity();
ContentBody cd = new ByteArrayBody(b, "my-file.txt");
form.addPart("file", cd);

HttpEntityEnclosingRequestBase post = new HttpPost("");
post.setEntity(form);
client.execute(post);
Run Code Online (Sandbox Code Playgroud)