Java Apache httpclient:块编码消息正文过早结束:应关闭块

Java Apache httpclient:块编码消息正文过早结束:应关闭块,java,httpclient,Java,Httpclient,我使用httpclient-4.5.2下载一些pdf文件,但有时会失败并引发closeException。谷歌的一些答案是关于过早结束回应。但是我仔细检查了我的代码,在关闭响应后没有尝试读取数据。这个问题还有其他原因吗 org.apache.http.ConnectionClosedException:块编码消息正文过早结束:应关闭块 位于org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java

我使用
httpclient-4.5.2
下载一些pdf文件,但有时会失败并引发closeException。谷歌的一些答案是关于过早结束回应。但是我仔细检查了我的代码,在关闭响应后没有尝试读取数据。这个问题还有其他原因吗

org.apache.http.ConnectionClosedException:块编码消息正文过早结束:应关闭块
位于org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:266)
位于org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:225)
位于org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:184)
位于org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
在java.io.BufferedInputStream.fill处(BufferedInputStream.java:246)
位于java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
在java.io.BufferedInputStream.read处(BufferedInputStream.java:345)
在java.io.FilterInputStream.read(FilterInputStream.java:107)中
HttpGet-HttpGet=newhttpget(fileUrl);
try(CloseableHttpClient-httpclient1=HttpClients.createDefault()){
setHeader(“Cookie”,Cookie);
setHeader(“用户代理”、“Mozilla/5.0(WindowsNT10.0;WOW64;Trident/7.0;rv:11.0)像Gecko”);
try(CloseableHttpResponse response=httpclient1.execute(httpGet)){
HttpEntity=response.getEntity();
InputStream=entity.getContent();
文件文件=新文件(tarPath);
如果(!file.getParentFile().exists()&&!file.getParentFile().mkdirs()){
抛出新IOException(“创建下载目录失败”);
}
字节[]b=新字节[1024];
试一试(
FileOutputStream fos=新的FileOutputStream(文件);
BufferedOutputStream bos=新的BufferedOutputStream(fos)
) {
内伦;
while((len=is.read(b))!=-1{//从这里引发异常:is.read(b)
bos.write(b,0,len);
}
}
}
}

您同时解决了您的问题吗?:)我面临着同样的问题。您的问题没有结果,但关于此github回购的解释可能提供了更多的见解:您同时解决了您的问题吗?:)我面临着同样的问题。您的问题没有结果,但对github回购协议的解释或许提供了更多的见解: