【问题标题】:URLconnection for nonHTTP connections用于非 HTTP 连接的 URLconnection
【发布时间】:2019-01-31 16:54:48
【问题描述】:

我试图了解何时使用 URLConnection 类以及何时使用 HttpURLConnection 类。在进行一些研究时,我知道 URLConnection 用于非 HTTP 连接,而 HttpURLConnection 用于特定的 HTTP 连接。有人可以帮我知道这些非 HTTP 连接指的是什么吗?

PS - 请注意我的 qn 不是关于 URLConnection 类和 HttpURLConnection 类的继承关系。

这是关于我们所说的非 HTTP 连接(可以由 URLConnection 类处理)的含义。是非HTTP连接是指数据报连接还是ftp连接或其他。参考以下网站:

https://www.experts-exchange.com/questions/21420009/URLConnection-and-HttpURLConnection.html

【问题讨论】:

标签: java networking httpurlconnection urlconnection


【解决方案1】:

URLConnection 是一个抽象类,表示与 URL 的任何连接。

一个 HttpURLConnecton 是一个 URLConnection(子类)并且提供了更多的方法。

话虽如此,您可以使用 HTTP 协议打开一个 URL 并将返回值分配给一个 URLConnection,但是您会缺少更具体的方法。

您可以打开指向 ftp 资源的 URL 或其他任何内容,并将结果分配给 URLConnection,但它可能不支持底层协议。例如,FTP 支持非常有限。

查看URL.openConnection()的文档:

如果对于 URL 的协议(例如 HTTP 或 JAR),存在属于以下包之一或其子包之一的公共专用 URLConnection 子类:java.lang、java.io、java.util、java .net,返回的连接将属于该子类。例如,对于 HTTP,将返回一个 HttpURLConnection,对于 JAR,将返回一个 JarURLConnection。

所以,是的,将 HttpURLConnection 用于 HTTP 连接和您拥有的任何专用 URLConnection,否则使用原始 URLConnection。话虽如此,这取决于您要使用哪种协议 - 对于任何重要的协议,您可能需要一个更完整的客户端。

【讨论】:

  • 感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2016-08-13
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
相关资源
最近更新 更多