模块  java.base
软件包  javax.net.ssl

Class HttpsURLConnection


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

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

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

    从以下版本开始:
    1.4
    • 字段详细信息

      • hostnameVerifier

        protected HostnameVerifier hostnameVerifier
        hostnameVerifier用于此对象。
    • 构造方法详细信息

      • HttpsURLConnection

        protected HttpsURLConnection​(URL url)
        使用指定的URL创建 HttpsURLConnection
        参数
        url - URL
    • 方法详细信息

      • getCipherSuite

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

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

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

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

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

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

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

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

        结果
        一个有序的服务器证书数组,首先是对等方自己的证书,然后是任何证书颁发机构。
        异常
        SSLPeerUnverifiedException - 如果未验证对等方。
        IllegalStateException - 如果在建立连接之前调用此方法。
        另请参见:
        getPeerPrincipal()
      • getPeerPrincipal

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

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

        结果
        服务器的主体。 返回基于X509的密码套件的终端实体certiticate的X500Principal,以及Kerberos密码套件的KerberosPrincipal。
        异常
        SSLPeerUnverifiedException - 如果未验证对等方
        IllegalStateException - 如果在建立连接之前调用此方法。
        从以下版本开始:
        1.5
        另请参见:
        getServerCertificates()getLocalPrincipal()
      • getLocalPrincipal

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

        注意:子类应覆盖此方法。 如果未被覆盖,它将默认返回为基于证书的密码套件发送到服务器的最终实体证书的X500Principal,或者对于基于非证书的密码套件(例如Kerberos)返回null。

        结果
        委托人发送到服务器。 返回基于X509的密码套件的终端实体证书的X500Principal,以及Kerberos密码套件的KerberosPrincipal。 如果没有发送主体,则返回null。
        异常
        IllegalStateException - 如果在建立连接之前调用此方法。
        从以下版本开始:
        1.5
        另请参见:
        getLocalCertificates()getPeerPrincipal()
      • setDefaultHostnameVerifier

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

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

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

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

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

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

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

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

        结果
        默认值 SSLSocketFactory
        另请参见:
        setDefaultSSLSocketFactory(SSLSocketFactory)
      • setSSLSocketFactory

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

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

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