下载图片没有关闭http输入流导致下载超时
Posted chenggang816
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下载图片没有关闭http输入流导致下载超时相关的知识,希望对你有一定的参考价值。
在某次接入第三方厂商数据时,需要根据对方提供的URL地址下载图片,当数据量大时会遇到很多的下载图片超时问题,开始以为是第三方厂商的问题,对方排查了很久之后,说是我这边下载数据全部留在缓存区,导致缓存区满了,并通过 netstat -antp 命令查看缓存队列,证明是我这边的问题。通过此命令查看到数据接收队列数值很大,上网查询资料后说是采用了tcp长连接导致的, 于是检查代码,看看下载时是否采用长连接,于是发现下载时没有关闭输入流,修改代码后测试,问题解决。
代码(改前):
Url url = new URL(urlStr); URLConnection urlConnection = url.openConnection(); InputStream in = urlConnection.getInputStream(); //读取流中的数据,写入文件 //函数退出,没有关闭流
代码(改后):
Url url = new URL(urlStr); URLConnection urlConnection = url.openConnection(); try(InputStream in = urlConnection.getInputStream()){ //读取流中的数据,写入文件 } //函数退出
以上是关于下载图片没有关闭http输入流导致下载超时的主要内容,如果未能解决你的问题,请参考以下文章