我试图了解何时使用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
答案 0 :(得分:0)
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。
因此,是的,对HTTP连接使用HttpURLConnection以及您拥有的任何专用URLConnection,否则,请使用原始URLConnection。话虽如此,这取决于您要使用哪种协议-对于任何不重要的协议,您可能需要一个更完整的客户端。