java中的HttpsURLConnection抽象类

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

一、概述

该类位于javax.net.ssl包下,类声明:public abstract class HttpsURLConnection extends HttpURLConnection

类层次结构:

 

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 套接字工厂。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值