【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…
最近涉及到文件上传相关的代码,看服务器日志显示的是这个Premature end of Content-Length delimited message body
翻译:内容长度分隔的消息正文过早结束
比如原计划传输100000 B,实际只是传输了88888 B,此时流关闭了。
本地打debug是:显示IO异常 连接关闭
百度了一下相关原因:就是说一个流转文件可能只转了一半,你将流关闭了,这样就导致了IO异常
复现一下我的情况:
第一步:先是通过路径获取文件转换成流
第二步:通过这个流获取这个文件的文字
debug到第二步就爆IO异常
异常原因:我的第一个方法下载的时候转换流,提前关闭了连接,导致第二步流没有全部提取出来成文字爆出异常
解决方案:修改代码逻辑,等到第二步全部执行完成,再执行流的关闭
method A{
try{
}catch{
}finally{
总结:遇到这样的异常一定要debug定位到具体的报错位置,看看是不是因为上述流关闭导致的异常,新手先尝试注释一下前面的流的close方法,重新测试,看看报错是否解决,如果解决,调整代码逻辑即可成功解决!
关闭资源 原则:先开后关,后开先关
The best investment is to invest in yourself.
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
2020.12.29 23:13 愿你们奔赴在自己的热爱里!
CloseableHttpClient httpClient = getHttpClient();
// 调用HttpClient发送Http请求,并对响应进行处理,转换成字节数组
HttpResponse response;
response = httpClient.execute(method);
org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body
org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 144445481; received: 25370248)
意思是数据传输被提前终止了,期望传输144445481 B,只...
[ERROR] Failed to execute goal on project myMahout: Could not resolve dependencies for project org.conan.mymahout:myMahout:jar:1.0-SNAPSHOT:
Could not transfer artifact org.apache.hadoop:hadoop-core
下载一个大文件(100M左右)报错,
org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 103767; received: 95040
百度 google 了很久尝试了很多办法,比如增加 http 链接的超时时间,增加缓冲区等都...
org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 121; received: 0)
at org.apache.http.impl.io.ContentLengthInputStream.read(Content...