java - 用于非 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
解决方案
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 。话虽如此,这取决于您要使用哪种协议 - 对于任何重要的协议,您可能需要一个更完整的客户端。
推荐阅读
- php - 将php数组转换为json格式?
- playframework - Actor + playframework + slick 查询
- python - 蟒蛇 | 绘制带有边界和频率的直方图
- r - 删除组内的第一个和最后一个观察值
- kdb - 获取 q 目录中的路径名文件
- php - 到达文件末尾时无限循环
- javascript - 如何使此函数打印 10 个素数而不是 2 到 10 之间的数字
- ibm-cloud - 在 IBM COS 中创建服务凭证的 API
- sql - 检测重叠日期并更新最新记录 SQL Server 2008
- google-cloud-platform - 文档 GCP 服务帐户委派