首页 > 解决方案 > 用于非 HTTP 连接的 URLconnection

问题描述

我试图了解何时使用 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

标签: javanetworkinghttpurlconnectionurlconnection

解决方案


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 。话虽如此,这取决于您要使用哪种协议 - 对于任何重要的协议,您可能需要一个更完整的客户端。


推荐阅读