模块 java.base

类 HttpsURLConnection


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

有关 https 规范的更多详细信息,请参阅 http://www.w3.org/pub/WWW/Protocols/ RFC 2818

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

自从:
1.4
  • 字段详细信息

    • hostnameVerifier

      protected HostnameVerifier  hostnameVerifier
      此对象的 hostnameVerifier
  • 构造方法详细信息

    • HttpsURLConnection

      protected HttpsURLConnection(URL  url)
      使用指定的 URL 创建一个 HttpsURLConnection
      参数:
      url - 网址
  • 方法详情

    • 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 用于非基于证书的密码套件,例如 Kerberos。

      返回:
      主体发送到服务。返回基于 X509 的密码套件的终端实体证书的 X500Principal,以及 Kerberos 密码套件的 KerberosPrincipal。如果没有发送委托人,则返回 null。
      抛出:
      IllegalStateException - 如果在建立连接之前调用此方法。
      自从:
      1.5
      参见:
    • setDefaultHostnameVerifier

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

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

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

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

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

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

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

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

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

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

      参数:
      sf - 默认的 SSL 套接字工厂
      抛出:
      IllegalArgumentException - 如果 SSLSocketFactory 参数为空。
      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 参数为空。
      SecurityException - 如果安全管理器存在并且其 checkSetFactory 方法不允许指定套接字工厂。
      参见:
    • getSSLSocketFactory

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

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