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

时间:2013-03-14 10:05:30

标签: java bytearray httpclient

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

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

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

感谢。

2 个答案:

答案 0 :(得分:8)

您可以执行类似

的操作
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);

答案 1 :(得分:3)

您可以使用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);