java 中的 HTTPS 和 HTTP 连接
HTTPS and HTTP connection in java
我知道 HTTPS 扩展了 http。那么这是否意味着我可以做到这一点?
HttpUrlConnection connect = passmyurl.openconnection(url);
和
HttpsUrlConnection connect = passmyurl.openconnection(url);
public static HttpsURLConnection passmyurl(URL url) throws IOException {
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
return connection;
}
这是否意味着两者都有效?由于 HTTPs 扩展了 HTTP,这意味着我也可以将 HTTP url 传递给此函数?
在您的代码中:
public static HttpsURLConnection passmyurl(URL url) throws IOException {
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
return connection;
}
您应该将 return 类型 HttpsURLConnection
更改为 URLConnection
。因为 url.openConnection()
结果的类型是 URLConnection
的子类型,具体类型取决于关于 url
的 protocol.The openConnection()
在 URL
class 中的实现文档:
If for the URL's protocol (such as HTTP or JAR), there exists a public, specialized URLConnection subclass belonging to one of the following packages or one of their subpackages: java.lang, java.io, java.util, java.net, the connection returned will be of that subclass. For example, for HTTP an HttpURLConnection will be returned, and for JAR a JarURLConnection will be returned.
因此您可以将 Http
url 或 Https
url 传递给您的方法。
见以下代码:
URLConnection httpConnection = new URL("http://test").openConnection();
System.out.println(httpConnection.getClass());
URLConnection httpsConnection = new URL("https://test").openConnection();
System.out.println(httpsConnection.getClass());
URLConnection ftpConnection = new URL("ftp://test").openConnection();
System.out.println(ftpConnection.getClass());`
印刷品是:
class sun.net.www.protocol.http.HttpURLConnection
class sun.net.www.protocol.https.HttpsURLConnectionImpl
class sun.net.www.protocol.ftp.FtpURLConnection
我知道 HTTPS 扩展了 http。那么这是否意味着我可以做到这一点?
HttpUrlConnection connect = passmyurl.openconnection(url);
和
HttpsUrlConnection connect = passmyurl.openconnection(url);
public static HttpsURLConnection passmyurl(URL url) throws IOException {
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
return connection;
}
这是否意味着两者都有效?由于 HTTPs 扩展了 HTTP,这意味着我也可以将 HTTP url 传递给此函数?
在您的代码中:
public static HttpsURLConnection passmyurl(URL url) throws IOException {
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
return connection;
}
您应该将 return 类型 HttpsURLConnection
更改为 URLConnection
。因为 url.openConnection()
结果的类型是 URLConnection
的子类型,具体类型取决于关于 url
的 protocol.The openConnection()
在 URL
class 中的实现文档:
If for the URL's protocol (such as HTTP or JAR), there exists a public, specialized URLConnection subclass belonging to one of the following packages or one of their subpackages: java.lang, java.io, java.util, java.net, the connection returned will be of that subclass. For example, for HTTP an HttpURLConnection will be returned, and for JAR a JarURLConnection will be returned.
因此您可以将 Http
url 或 Https
url 传递给您的方法。
见以下代码:
URLConnection httpConnection = new URL("http://test").openConnection();
System.out.println(httpConnection.getClass());
URLConnection httpsConnection = new URL("https://test").openConnection();
System.out.println(httpsConnection.getClass());
URLConnection ftpConnection = new URL("ftp://test").openConnection();
System.out.println(ftpConnection.getClass());`
印刷品是:
class sun.net.www.protocol.http.HttpURLConnection
class sun.net.www.protocol.https.HttpsURLConnectionImpl
class sun.net.www.protocol.ftp.FtpURLConnection