我在Android上面临HTTPUrlConnection的一个有趣问题。
以下是步骤
1.使用特定URL表示URL,创建一个新的HTTPUrlConnection
2.现在我更改设备级别的APN设置
3.现在我用相同的URL创建另一个HTTPUrlConnection
在步骤3之后尝试读取输入蒸汽时,连接超时。
另一件有趣的事情是当我在步骤3中更改网址时,一切似乎都运行良好
我能想到的一个原因可能是Android以某种方式保持以前的连接存活并在步骤3中返回相同的连接,并且由于APN已更改,该连接不再有效。
我们将非常感谢您对此的任何见解。
谢谢, 马南
答案 0 :(得分:1)
我能想到的一个原因可能是Android以某种方式保持以前的连接存活并在步骤3中返回相同的连接,并且由于APN已更改,该连接不再有效。
这是一个非常明显的可能性。 Android为HttpUrlConnection
添加了keep-alive支持。通常,APN设置不会改变(AFAIK),因此这可能不是一个大问题。但是,根据this Android Developer Blog post,您可以通过System.setProperty("http.keepAlive", "false");
停用保持活动状态。