如何防止openConnection()实际连接

时间:2015-06-23 09:47:50

标签: java android http url

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

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

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

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

更新看起来connection在某个池中,并且即使在调用connection.disconnect()之后也无法断开连接,甚至无法取消服务器。< / p>

我不认为这是Android的副本,因为它没有给出真正的答案。此外,文件似乎还不清楚。

1 个答案:

答案 0 :(得分:-1)

openConnection()无法连接,您发布的代码与您所描述的不同。打开TCP连接的是以下任何一种:

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

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