我有一个字符串是base64编码的gzip压缩png,它是来自Web服务的响应(它是一个运输标签)。我可以轻松地将其保存到文件中,然后POST
将文件保存到端点。但是,如果我能以某种方式将png附加到请求并将其作为文件发送而不必保存并上传它,那么这似乎更实用。
第三方端点期望文件上传如下:
------WebKitFormBoundary6Pa1wvNhXthHAKpp
Content-Disposition: form-data; name="file"; filename="scaled.png"
Content-Type: image/png
------WebKitFormBoundary6Pa1wvNhXthHAKpp--
我知道我可以保存文件,然后发布文件
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addPart("name", new FileBody(name));
String response = Request.Post(end).body(builder.build())
.execute().returnContent().toString();
有没有办法在不将png保存到文件系统的情况下获得相同的结果?
答案 0 :(得分:1)
实现AbstractContentBody
答案 1 :(得分:1)
如果您想以完全相同的格式将其发送到远程服务器,您可以始终获得两全其美......
MultiSelector
这种方法根本不必将整个文件拉入内存,只需将其从一台服务器传输到另一台服务器。
如果要解压缩(但不做其他任何操作),可以使用GZIPInputStream并完成相同的结果。
如果您需要操纵该实体,那么您别无选择,只能将其拉入内存(除非您可以以流方式进行操作)。