首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用HTTPBuilder (HttpClient)下载文件?

如何使用HTTPBuilder (HttpClient)下载文件?
EN

Stack Overflow用户
提问于 2012-11-28 08:26:51
回答 1查看 8.4K关注 0票数 3

我需要下载和保存文件。我尝试使用HTTPBuilder,因为它有简单的API,支持cookies。我写了以下代码:

代码语言:javascript
复制
//create new httpBuilder and set cookies
def httpBuilder = ...
def file = ...  
def inputStream = httpBuilder.get(uri: urlData.url, contentType: ContentType.BINARY)
FileUtils.copyInputStreamToFile(inputStream)
  1. 如何检查该文件是否正确下载(不仅仅是文件的一部分)?
  2. 对于大型文件,异常java.lang.OutOfMemoryError: Java heap space发生在def inputStream = httpBuilder.get...上,如何解决?
  3. 也许通过HTTPBuilder下载文件并不是最好的选择。使用cookies下载文件的最佳方法是什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-09 23:59:44

您是否尝试过使用自定义响应处理逻辑的HttpBuilder GET请求:

代码语言:javascript
复制
httpBuilder.get(uri: urlData.url, contentType: ContentType.BINARY) { 
   resp, inputStream ->
       FileUtils.copyInputStreamToFile(inputStream)
}

如果HttpBuilder有一些奇怪的问题,那么您可以始终使用尝试过的和真正的Apache HttpClient API,它具有完全的cookie支持。

代码语言:javascript
复制
HttpGet req = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(req);
// validate response code, etc.
InputStream inputStream = response.getEntity().getContent();

在执行管理cookie的请求时,可以添加一个localContext。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13600780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档