gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:49:15 26 4
gpt4 key购买 nike

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

//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 下载文件不是最好的选择。 使用 cookie 支持 下载文件的最佳方式是什么?

最佳答案

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

httpBuilder.get(uri: urlData.url, contentType: ContentType.BINARY) { 
resp, inputStream ->
FileUtils.copyInputStreamToFile(inputStream)
}

如果 HttpBuilder 有奇怪的问题,那么您总是可以使用久经考验的 Apache HttpClient API具有完整的 cookie 支持。

HttpGet req = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(req);
// validate response code, etc.
InputStream inputStream = response.getEntity().getContent();

可以在执行管理cookies的请求时添加localContext

关于groovy - 如何使用 HTTPBuilder (HttpClient) 下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com