您需要先将其
String转换为gzip
byte[]或(临时)
File。我们假设它不是一个很大的
String值,所以
byte[]对于可用的JVM内存足够安全:
String foo = "value";ByteArrayOutputStream baos = new ByteArrayOutputStream();try (GZIPOutputStream gzos = new GZIPOutputStream(baos)) { gzos.write(foo.getBytes("UTF-8"));}byte[] fooGzippedBytes = baos.toByteArray();然后,可以使用HttpClient将其作为多部分主体发送,如下所示:
MultipartEntity entity = new MultipartEntity();entity.addPart("foo", new InputStreamBody(new ByteArrayInputStream(fooGzippedBytes), "foo.txt"));HttpPost post = new HttpPost("http://example.com/some");post.setEntity(entity);HttpClient client = new DefaultHttpClient();HttpResponse response = client.execute(post);// ...请注意,HttpClient 4.1支持新功能
ByteArrayBody,其用法如下:
entity.addPart("foo", new ByteArrayBody(fooGzippedBytes, "foo.txt"));


