由于内存不足异常,Unirest获取大文件失败

时间:2014-11-23 15:17:14

标签: java rest unirest

我正在使用unirest从服务器执行get操作。我的问题是,当下载大文件时,操作失败并出现内存不足的异常。

HttpResponse<InputStream> responseGet = Unirest.get("http://localhost:8080/BigDataTEst")
        .header("content-type", "*/*")
        .asBinary();    

有没有办法使用unirest来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您在哪个JRE版本上运行该应用程序?

当我使用Unirest时,我对大文件(超过100 mb)有同样的问题(堆空间/内存不足错误)。问题在于Apache Http Components库(它完全是Arrays.copyOf方法,由Apache Http Components引用)。

当我开始在JRE 8 x64上测试它时问题消失了(我怀疑实现copyOf已被更改或类似的东西)。

所以我建议尝试不同的JRE,或者你总是可以使用Apache Commons IO和FileUtils.copyURLToFile