Module java.base
Package javax.net.ssl

Class HttpsURLConnection


public abstract class HttpsURLConnection extends HttpURLConnection
HttpsURLConnection 扩展了支持https特定功能的HttpURLConnection

查看http://www.w3.org/pub/WWW/Protocols/RFC 2818以获取有关https规范的更多详细信息。

此类使用HostnameVerifierSSLSocketFactory。这两个类都有默认实现。但是,这些实现可以在每个类(静态)或每个实例的基础上进行替换。所有新的HttpsURLConnection实例在创建时将被分配“默认”静态值,但可以通过在connect之前调用适当的每个实例设置方法来覆盖它们。

自版本:
1.4
  • Field Details

    • hostnameVerifier

      protected HostnameVerifier hostnameVerifier
      此对象的hostnameVerifier
  • Constructor Details

    • HttpsURLConnection

      protected HttpsURLConnection(URL url)
      使用指定的URL创建一个HttpsURLConnection
      参数:
      url - URL
  • Method Details

    • getCipherSuite

      public abstract String getCipherSuite()
      返回此连接上正在使用的密码套件。
      返回:
      密码套件
      抛出:
      IllegalStateException - 如果在建立连接之前调用此方法。
    • getLocalCertificates

      public abstract Certificate[] getLocalCertificates()
      返回在握手期间发送到服务器的证书。

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

      当有多个证书可用于握手时,实现会选择其认为是可用的“最佳”证书链,并将其传输到另一侧。此方法允许调用者了解实际发送的证书链。

      返回:
      一个有序的证书数组,客户端自己的证书在前,然后是任何证书颁发机构。如果未发送证书,则返回null。
      抛出:
      IllegalStateException - 如果在建立连接之前调用此方法。
      参见:
    • getServerCertificates

      public abstract Certificate[] getServerCertificates() throws SSLPeerUnverifiedException
      返回作为定义会话的一部分建立的服务器证书链。

      注意:仅在使用基于证书的密码套件时才能使用此方法;与非基于证书的密码套件(如Kerberos)一起使用会引发SSLPeerUnverifiedException。

      注意:返回的值可能不是有效的证书链,不应依赖于其进行信任决策。

      返回:
      一个有序的服务器证书数组,对等方自己的证书在前,然后是任何证书颁发机构。
      抛出:
      SSLPeerUnverifiedException - 如果对等方未经验证。
      IllegalStateException - 如果在建立连接之前调用此方法。
      参见:
    • getPeerPrincipal

      public Principal getPeerPrincipal() throws SSLPeerUnverifiedException
      返回作为定义会话的一部分建立的服务器主体。

      注意:子类应重写此方法。如果未重写,它将默认返回基于证书的密码套件的服务器端实体证书的X500Principal,或对于非基于证书的密码套件(如Kerberos),将抛出SSLPeerUnverifiedException。

      返回:
      服务器主体。对于基于X509的密码套件,返回端实体证书的X500Principal,对于Kerberos密码套件,返回KerberosPrincipal。
      抛出:
      SSLPeerUnverifiedException - 如果对等方未经验证
      IllegalStateException - 如果在建立连接之前调用此方法。
      自版本:
      1.5
      参见:
    • getLocalPrincipal

      public Principal getLocalPrincipal()
      返回在握手期间发送到服务器的主体。

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

      返回:
      发送到服务器的主体。对于基于X509的密码套件,返回端实体证书的X500Principal,对于Kerberos密码套件,返回KerberosPrincipal。如果未发送主体,则返回null。
      抛出:
      IllegalStateException - 如果在建立连接之前调用此方法。
      自版本:
      1.5
      参见:
    • setDefaultHostnameVerifier

      public static void setDefaultHostnameVerifier(HostnameVerifier v)
      设置新实例继承的默认HostnameVerifier

      如果未调用此方法,默认HostnameVerifier会假定不应允许连接。

      参数:
      v - 默认主机名验证器
      抛出:
      IllegalArgumentException - 如果HostnameVerifier参数为null。
      SecurityException - 如果存在安全管理器且其checkPermission方法不允许SSLPermission("setHostnameVerifier")
      参见:
    • getDefaultHostnameVerifier

      public static HostnameVerifier getDefaultHostnameVerifier()
      获取此类的新实例继承的默认HostnameVerifier
      返回:
      默认主机名验证器
      参见:
    • setHostnameVerifier

      public void setHostnameVerifier(HostnameVerifier v)
      设置此实例的HostnameVerifier

      此类的新实例继承了由setDefaultHostnameVerifier设置的默认静态主机名验证器。调用此方法会替换此对象的HostnameVerifier

      参数:
      v - 主机名验证器
      抛出:
      IllegalArgumentException - 如果HostnameVerifier参数为null。
      参见:
    • getHostnameVerifier

      public HostnameVerifier getHostnameVerifier()
      获取此实例上的HostnameVerifier
      返回:
      主机名验证器
      参见:
    • setDefaultSSLSocketFactory

      public static void setDefaultSSLSocketFactory(SSLSocketFactory sf)
      设置新实例继承的默认SSLSocketFactory

      在为安全https URL连接创建套接字时使用套接字工厂。

      参数:
      sf - 默认的SSL套接字工厂
      抛出:
      IllegalArgumentException - 如果SSLSocketFactory参数为null。
      SecurityException - 如果存在安全管理器且其checkSetFactory方法不允许指定套接字工厂。
      参见:
    • getDefaultSSLSocketFactory

      public static SSLSocketFactory getDefaultSSLSocketFactory()
      获取此类的新实例继承的默认静态SSLSocketFactory

      在创建用于安全https URL连接的套接字时使用套接字工厂。

      返回:
      默认的SSLSocketFactory
      参见:
    • setSSLSocketFactory

      public void setSSLSocketFactory(SSLSocketFactory sf)
      设置当此实例创建用于安全https URL连接的套接字时要使用的SSLSocketFactory

      此类的新实例继承由setDefaultSSLSocketFactory设置的默认静态SSLSocketFactory。调用此方法会替换此对象的SSLSocketFactory

      参数:
      sf - SSL套接字工厂
      抛出:
      IllegalArgumentException - 如果SSLSocketFactory参数为null。
      SecurityException - 如果存在安全管理器且其checkSetFactory方法不允许指定套接字工厂。
      参见:
    • getSSLSocketFactory

      public SSLSocketFactory getSSLSocketFactory()
      获取用于创建安全https URL连接的SSL套接字工厂。
      返回:
      SSLSocketFactory
      参见:
    • getSSLSession

      public Optional<SSLSession> getSSLSession()
      返回包含此连接上正在使用的SSLSessionOptional。如果底层实现不支持此方法,则返回空的Optional
      实现要求:
      为了兼容性,此方法的默认实现返回一个空的Optional。子类应该使用适当的实现重写此方法,因为应用程序可能需要访问与SSL会话关联的其他参数。
      返回:
      包含此连接上正在使用的SSLSessionOptional
      抛出:
      IllegalStateException - 如果在建立连接之前调用此方法
      自:
      12
      参见: