java - openConnection() 或 connect() 这两个 API 中哪一个实际打开连接?

标签 java android network-programming httpurlconnection

我对 Android 还比较陌生。我对 Android 中用于网络通信的 2 个 API 的功能有一个非常基本的困惑。

  1. openConnection()
  2. 连接()

来自conn.connect()看起来 connect() 才是真正创建连接的。

来自 url.openConnection()看起来 openConnection() 实际上创建了连接。

从围绕 SO 主题的一些讨论来看, conn.connect()支持前者,答案有 4 票赞成 url.openConnection()支持后者,该答案获得 97 票赞成。

有人可以帮助消除困惑吗?

最佳答案

因此,进一步深入研究实际上帮助我更清楚地理解了这一点。

正如上面评论中所讨论的,也如here所述

  1. 通过调用 openConnection 创建连接对象 URL 上的方法。
  2. 操纵设置参数和一般请求属性。
  3. 使用以下命令建立与远程对象的实际连接 连接方法。
  4. 远程对象变得可用。 header 字段和 可以访问远程对象的内容。

现在就 conn.getInputStream() 而言,按照this ,

You are not always required to explicitly call the connect method to initiate the connection. Operations that depend on being connected, like getInputStream, getOutputStream, etc, will implicitly perform the connection, if necessary.

现在我仍在试图弄清楚他们到底是如何隐式建立连接的!

关于java - openConnection() 或 connect() 这两个 API 中哪一个实际打开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089589/

相关文章:

android - 通知中的 PendingIntent

android - 如何在两个小部件/布局之间添加新的 "Floating Action Button"

java - 访问大量 Apache MINA 链接时显示 404 Not Found 页面

java - Java 中的标签云库

java - JNI 附加/分离线程内存管理

java - 我无法运行 JAR 文件?

java - 相当于 Java 中用于比较字节数组的 strcmp()

c++ - Winsock 2.0 将无法连接到公共(public) IP 地址

c - 在屏幕底部保持提示消息应用程序

java - Confluence - 访问 Comala 工作流的 Activity 流