如何防止openConnection()实际连接

我想使用HttpURLConnection连接到我的webservice,POST一个XML并获得结果。 我使用以下代码:

 URL url = new URL(urlString); connection = (HttpURLConnection)url.openConnection(); connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); 

问题是,当我调用setRequestProperty方法时,它失败并出现IllegalStateException说我“已经连接”了。 显然, openConnection实际上打开了与URL的连接(在我的调试器中,我可以看到connected布尔值设置为true )。 根据Oracle的URL文档,它不应该。 Android文档尚不清楚。

如何阻止openConnection连接,以便我可以设置额外的属性?

更新看起来connection在某个池中并且不会断开连接,甚至在调用connection.disconnect() ,甚至不会杀死服务器。

我认为这不是这个问题的重复,因为它没有给出真正的答案。 此外,文件似乎不清楚。

openConnection()没有连接,你发布的代码不像你所描述的那样。 打开TCP连接的是以下任何一种:

  • getInputStream()
  • getErrorStream()
  • getResponseCode()

在尝试设置请求属性之前,你必须先调用其中一个。