首页 > 代码库 > java中的HttpsURLConnection抽象类

java中的HttpsURLConnection抽象类

一、概述

该类位于javax.net.ssl包下,类声明:public abstract classHttpsURLConnection extendsHttpURLConnection

类层次结构:

java.lang.Object
  技术分享java.net.URLConnection
      技术分享java.net.HttpURLConnection
          技术分享javax.net.ssl.HttpsURLConnection

HttpsURLConnection 扩展 HttpURLConnection,支持各种特定于 https 功能。 

此类使用 HostnameVerifierSSLSocketFactory。为这两个类都定义了默认实现。但是,可以根据每个类(静态的)或每个实例来替换该实现。所有新HttpsURLConnection 实例在创建时将被分配“默认的”静态值,通过在连接前调用每个实例适当的 set 方法可以重写这些值。 


二、字段

protected HostnameVerifier hostnameVerifier  此对象的 hostnameVerifier
三、构造方法
protected HttpsURLConnection(URL url)  使用指定的 URL 创建 HttpsURLConnection
四、方法
1、public abstract String getCipherSuite()  返回在此连接上使用的密码套件。
抛出: IllegalStateException - 如果在连接建立前调用此方法。
2、public abstract Certificate[] getLocalCertificates() 返回握手期间发送给服务器的证书。

注:仅当使用基于证书的密码套件时此方法才有用。

当在一次握手中有多个证书可供使用时,实现选择它认为是“最好的”可用证书链,并把它传输到另一方。此方法允许调用者知道实际发送的证书链。 

返回:证书的有序数组,客户端的证书在前,后跟所有证书颁发机构。如果没有发送任何证书,则返回 null。
抛出: IllegalStateException - 如果在连接建立前调用此方法。
3、public abstract Certificate[] getServerCertificates() throws SSLPeerUnverifiedException 返回服务器的证书链,它是作为定义会话的一部分而建立的。
注:仅当使用基于证书的密码套件时才可以使用此方法;将它与非基于证书的密码套件(如 Kerberos)一起使用将抛出 SSLPeerUnverifiedException。
返回:服务器证书的有序数组,同位体的证书在前,后跟所有证书颁发机构。
抛出: SSLPeerUnverifiedException - 如果没有验证同位体。
IllegalStateException - 如果在连接建立前调用此方法。
4、public Principal getPeerPrincipal() throws SSLPeerUnverifiedException 返回服务器的主体,它是作为定义会话的一部分而建立的。
注:子类应重写此方法。如果没有重写此方法,则对于基于证书的密码套件,它将默认返回服务器终端实体证书的 X500Principal,对于非基于证书的密码套件(如 Kerberos),则抛出 SSLPeerUnverifiedException。
返回:服务器的主体。返回基于 X509 的密码套件的终端实体证书的 X500Principal,以及 Kerberos 的密码套件的 KerberosPrincipal。
抛出: SSLPeerUnverifiedException - 如果没有验证同位体 
IllegalStateException - 如果在连接建立前调用此方法。
5、public Principal getLocalPrincipal() 返回握手期间发送到服务器的主体。

注:子类应重写此方法。如果没有重写此方法,则对于基于证书的密码套件,它将默认返回发送到服务器的终端实体证书的 X500Principal,对于非基于证书的密码套件(如 Kerberos),则返回 null。 

返回:发送到服务器的主体。返回基于 X509 的密码套件的终端实体证书的 X500Principal,以及 Kerberos 的密码套件的 KerberosPrincipal。如果没有发送任何主体,则返回 null。
抛出: IllegalStateException - 如果在连接建立前调用此方法。
6、public static void setDefaultHostnameVerifier(HostnameVerifier v) 设置此类的新实例所继承的默认 HostnameVerifier

如果不调用此方法,则默认的 HostnameVerifier 假定连接不应该被允许。 

参数:v - 默认的主机名校验器
抛出: IllegalArgumentException - 如果 HostnameVerifier 参数为 null。
SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许 SSLPermission("setHostnameVerifier")7、public static HostnameVerifier getDefaultHostnameVerifier() 获取此类的新实例所继承的默认 HostnameVerifier。 
8、public void setHostnameVerifier(HostnameVerifier v) 设置此实例的 HostnameVerifier。 
此类的新实例继承由 setDefaultHostnameVerifier 设置的默认静态主机名校验器。调用此方法会替换此对象的 HostnameVerifier。 
参数:v - 主机名校验器
抛出: IllegalArgumentException - 如果 HostnameVerifier 参数为 null。
9、public HostnameVerifier getHostnameVerifier() 获取此实例适当的 HostnameVerifier(主机名校验器)。 
10、public static void setDefaultSSLSocketFactory(SSLSocketFactory sf) 设置此类的新实例所继承的默认 SSLSocketFactory
当为安全 https URL 连接创建套接字时使用套接字工厂。
参数:sf - 默认的 SSL 套接字工厂
抛出: IllegalArgumentException - 如果 SSLSocketFactory 参数为 null。
SecurityException - 如果安全管理器存在并且其 checkSetFactory 方法不允许指定套接字工厂。
11、public static SSLSocketFactory getDefaultSSLSocketFactory() 获取此类的新实例所继承的默认静态 SSLSocketFactory
当为安全 https URL 连接创建套接字时使用套接字工厂。
12、public void setSSLSocketFactory(SSLSocketFactory sf) 设置当此实例为安全 https URL 连接创建套接字时使用的 SSLSocketFactory。 
此类的新实例继承由 setDefaultSSLSocketFactory 设置的默认静态 SSLSocketFactory。调用此方法会替换此对象的 SSLSocketFactory。 
参数:sf - SSL 套接字工厂 
抛出: IllegalArgumentException - 如果 SSLSocketFactory 参数为 null。
13、public SSLSocketFactory getSSLSocketFactory() 获取为安全 https URL 连接创建套接字时使用的 SSL 套接字工厂。

java中的HttpsURLConnection抽象类