我需要调用远程REST接口处理程序并将其提交到请求正文中的文件。请注意,我不控制服务器。我不能将请求更改为多部分,客户端必须根据外部规范进行工作。
到目前为止,我设法使它像这样工作(为简洁起见,省略了标题等):
byte[] data = readFileCompletely ();
client.target (url).request ().post (Entity.entity (data, "file/mimetype"));
这可以工作,但是会因无法容纳到内存中的大文件而失败。而且由于我对文件大小没有限制,所以这是一个问题。
问题:是否可以使用流或类似方法来避免将整个文件读入内存?
如果可能的话,我宁愿避免特定于实现的扩展。如果不是这样,也可以使用与RESTEasy一起使用的解决方案(在Wildfly上)。
ReastEasy和Jersey支持开箱即用的InputStream,因此只需使用Entity.entity(inputStream, "application/octet-stream");
或您要设置的任何Content-Type标头即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句