gpt4 book ai didi

java - 从服务器响应写入(下载)文件时如何忽略内容长度异常?

转载 作者:行者123 更新时间:2023-12-02 09:41:29 25 4
gpt4 key购买 nike

我正在向我无法控制的服务器发出请求。它返回一个可下载的响应。我正在客户端下载文件,如下

File backupFile = new File("Download.zip");

CloseableHttpResponse response = ...;

try(InputStream inputStream = response.getEntity().getContent()) {
try(FileOutputStream fos = new FileOutputStream(backupFile)) {
int inByte;
while((inByte = inputStream.read()) != -1) {
fos.write(inByte);
}
}
}

我遇到以下异常:

Premature end of Content-Length delimited message body (expected: 548846; received: 536338
at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:142)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:120)

Premature end of Content-Length delimited message body (expected:

我浏览了above所以问题,但是这个问题及其答案解决了一个严重的错误,即服务器没有兑现它所 promise 的内容。另外,在文件下载完成之前我不会关闭客户端。

就我而言,该文件(zip 文件)是完美的,只是大小的估计有一小部分偏差。

已将此异常报告给服务器维护人员,但我想知道是否有办法忽略此异常。假设对下载文件的检查是由自己完成的。

最佳答案

假设文件按原样完整,您可以简单地捕获异常,刷新流的其余部分,关闭它,并且文件应该按照服务器给出的完整写入。当然,如果文件部分完整,那么您将无法在任何上下文中以 zip 文件形式打开该文件,因此请确保文件在发送时正确无误这只是内容长度的问题。

关于java - 从服务器响应写入(下载)文件时如何忽略内容长度异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57034775/

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