Android - HttpUrlConnection没有关闭.最终导致SocketException

 了不起的老狐_226 发布于 2023-02-13 06:11

我在运行Jellybean(4.1 - 4.3)的设备中遇到HttpUrlConnection的一些问题,其中连接未关闭并且在执行多次后导致SocketException"Too many open files".

我打算调用HttpUrlConnection.disconnect()并关闭finally块中的所有Inputstream,Outputstream,Reader和Writers.

转到adb shell并执行netstat显示应用程序创建的所有连接都处于CLOSE_WAIT状态.

InputStream inputStream = httpUrlConnection.getInputStream();

// After calling inputStream.read() then the problem occurs. I think the 
// inputstream doesn't get closed even after calling close in a finally block. 
// The InputStream is a ChunkedInputStream if that helps.

我尝试过在2.3.3,4.0.3和4.4上运行的其他设备并没有遇到这个问题.

还有其他方法可以手动关闭连接吗?

1 个回答
  • 我终于找到了解决方法.似乎Jellybean在"Keep-Alive"连接上存在问题.我刚刚将Connection = Close添加到我的请求标题中,现在一切正常.做一个netstat,我看到连接现在正在关闭,由于"打开的文件太多",我不再收到SocketException.

    2023-02-13 06:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有