gpt4 book ai didi

java - 使用jsoup下载文件,响应bodyStream只能下载一兆字节的文件

转载 作者:行者123 更新时间:2023-12-02 11:04:35 25 4
gpt4 key购买 nike

我使用jsoup从网站下载一些文件,通过使用下面的代码,我可以获得文件下载响应正文

 private HttpConnection.Response getResponse3(String url, String resource_url) throws IOException {
Response resource_download;
resource_download = Jsoup.connect(resource_url)
.method(Method.GET).header("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36")
.header("Upgrade-Insecure-Requests", "1")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
.header("Accept-Encoding", "gzip, deflate, br")
.header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
.header("Referer", url)
.cookie("CASTGC", "TGT-1479-kzRU5mnAuwVmsfJFcaHDT1iIrD6V7C1kUvi6IMi")
.followRedirects(true)
.ignoreContentType(true)
.execute();
return resource_download;
}

然后我只需将响应对象返回到另一个方法即可下载文件。方法如下:

        File file = new File(downloadFilePath + fileName);
BufferedInputStream inputStream = response.bodyStream();
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
inputStream.close();
fos.close();

但是,我只能下载 1MB 的文件,大约是70M左右。所以我想知道为什么这些代码不能正常工作?它出什么问题了。

我还读到一些建议说最好使用HttpURLConnection而不是jsoup来下载文件,但我这样做的原因是因为我认为jsoup可以携带浏览器的cookie和其他一些信息来获取文件下载流,而如果我向文件 url 发送另一个请求,我必须再次写入这些信息和 cookie。如果没有这些信息,我将被服务器检测到,他们可能会拒绝我的访问。

最佳答案

.execute()之前使用.maxBodySize(0)https://jsoup.org/apidocs/org/jsoup/Connection.html#maxBodySize-int-

关于java - 使用jsoup下载文件,响应bodyStream只能下载一兆字节的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51073829/

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