Module  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 - 网址
    • 方法详细信息

      • 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的密码套件的终端实体认证的X500Principal,以及Kerberos密码套件的KerberosPrincipal。
        异常
        SSLPeerUnverifiedException - 如果对等体未被验证
        IllegalStateException - 如果在建立连接之前调用此方法。
        从以下版本开始:
        1.5
        另请参见:
        getServerCertificates()getLocalPrincipal()
      • getLocalPrincipal

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

        注意:子类应该覆盖此方法。 如果没有被覆盖,它将默认返回发送到服务器的最终实体证书的X500Principal,用于基于证书的密码体制,或者返回非基于密码密码的密码,例如Kerberos。

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

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

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

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

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

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

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