URL.openConnection()和URLConnection.connect()之间有什么区别?

8
在代码中:
HttpURLConnection connection = (HttpURLConnection)createMerchURL.openConnection();
connection.setRequestMethod("PUT");
connection.addRequestProperty("Name", "Value1");

connection.connect();

..
connection.disconnect();
  • 连接实际上是在什么时候打开的?是在 ..createMerchURL.openConnection(); 还是在 connection.connect(); ?

  • 如何在 connection 对象中设置 URL 并使用 connection.connect() ?(因为我不太熟悉 .openConnection()

最后,这两者之间有什么区别吗?

谢谢。

3个回答

8

connection.connect() 不是必需的。依赖于连接的操作,如 getContentLength(), getResponseCode() 如果需要会自动执行连接。

来源:Java Docs


2
所有的都是正确的,但没有回答他所问的任何一个问题。 - user207421

8
连接实际上是在connection.connect()时打开的,而createMerchURL.openConnection()只是解析URL,找到协议并创建HttpURLConnection对象。
你无法在连接对象中设置URL,并且也不能在connection.connect()中使用它。
(因为我不太熟悉.openConnection(),所以)不好意思,你需要适应它。

不幸的是,要与它相处融洽。哈哈哈..最好的部分:p即使过了3年。感谢 Rx 和 Retrofit/OkHttp,我继续前进 :D - beerBear

1
除了其他答案之外,如果你只想通过某个地址触发一些 PHP 文件(通过 GET),你可以在 openConnection() 之后简单地使用 connect(),然后当然要使用 disconnect()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接