java.lang.Object java.net.URLConnection java.net.HttpURLConnection javax.net.ssl.HttpsURLConnection
public abstract class HttpsURLConnection
HttpsURLConnection
扩展 HttpURLConnection
,支持各种特定于 https 功能。
有关 https 规范的更多详细信息,请参见 http://www.w3.org/pub/WWW/Protocols/ 和 RFC 2818。
此类使用 HostnameVerifier
和 SSLSocketFactory
。为这两个类都定义了默认实现。但是,可以根据每个类(静态的)或每个实例来替换该实现。所有新 HttpsURLConnection
实例在创建时将被分配“默认的”静态值,通过在连接
前调用每个实例适当的 set 方法可以重写这些值。
字段摘要 | |
---|---|
protected HostnameVerifier |
hostnameVerifier 此对象的 hostnameVerifier 。 |
从类 java.net.URLConnection 继承的字段 |
---|
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches |
构造方法摘要 | |
---|---|
protected |
HttpsURLConnection(URL url) 使用指定的 URL 创建 HttpsURLConnection 。 |
方法摘要 | |
---|---|
abstract String |
getCipherSuite() 返回在此连接上使用的密码套件。 |
static HostnameVerifier |
getDefaultHostnameVerifier() 获取此类的新实例所继承的默认 HostnameVerifier 。 |
static SSLSocketFactory |
getDefaultSSLSocketFactory() 获取此类的新实例所继承的默认静态 SSLSocketFactory 。 |
HostnameVerifier |
getHostnameVerifier() 获取此实例适当的 HostnameVerifier 。 |
abstract Certificate[] |
getLocalCertificates() 返回握手期间发送给服务器的证书。 |
Principal |
getLocalPrincipal() 返回握手期间发送到服务器的主体。 |
Principal |
getPeerPrincipal() 返回服务器的主体,它是作为定义会话的一部分而建立的。 |
abstract Certificate[] |
getServerCertificates() 返回服务器的证书链,它是作为定义会话的一部分而建立的。 |
SSLSocketFactory |
getSSLSocketFactory() 获取为安全 https URL 连接创建套接字时使用的 SSL 套接字工厂。 |
static void |
setDefaultHostnameVerifier(HostnameVerifier v) 设置此类的新实例所继承的默认 HostnameVerifier 。 |
static void |
setDefaultSSLSocketFactory(SSLSocketFactory sf) 设置此类的新实例所继承的默认 SSLSocketFactory 。 |
void |
setHostnameVerifier(HostnameVerifier v) 设置此实例的 HostnameVerifier 。 |
void |
setSSLSocketFactory(SSLSocketFactory sf) 设置当此实例为安全 https URL 连接创建套接字时使用的 SSLSocketFactory 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
protected HostnameVerifier hostnameVerifier
hostnameVerifier
。
构造方法详细信息 |
---|
protected HttpsURLConnection(URL url)
HttpsURLConnection
。
url
- URL
方法详细信息 |
---|
public abstract String getCipherSuite()
IllegalStateException
- 如果在连接建立前调用此方法。
public abstract Certificate[] getLocalCertificates()
注:仅当使用基于证书的密码套件时此方法才有用。
当在一次握手中有多个证书可供使用时,实现选择它认为是“最好的”可用证书链,并把它传输到另一方。此方法允许调用者知道实际发送的证书链。
IllegalStateException
- 如果在连接建立前调用此方法。
getLocalPrincipal()
public abstract Certificate[] getServerCertificates() throws SSLPeerUnverifiedException
注:仅当使用基于证书的密码套件时才可以使用此方法;将它与非基于证书的密码套件(如 Kerberos)一起使用将抛出 SSLPeerUnverifiedException。
SSLPeerUnverifiedException
- 如果没有验证同位体。
IllegalStateException
- 如果在连接建立前调用此方法。
getPeerPrincipal()
public Principal getPeerPrincipal() throws SSLPeerUnverifiedException
注:子类应重写此方法。如果没有重写此方法,则对于基于证书的密码套件,它将默认返回服务器终端实体证书的 X500Principal,对于非基于证书的密码套件(如 Kerberos),则抛出 SSLPeerUnverifiedException。
SSLPeerUnverifiedException
- 如果没有验证同位体
IllegalStateException
- 如果在连接建立前调用此方法。
getServerCertificates()
,
getLocalPrincipal()
public Principal getLocalPrincipal()
注:子类应重写此方法。如果没有重写此方法,则对于基于证书的密码套件,它将默认返回发送到服务器的终端实体证书的 X500Principal,对于非基于证书的密码套件(如 Kerberos),则返回 null。
IllegalStateException
- 如果在连接建立前调用此方法。
getLocalCertificates()
,
getPeerPrincipal()
public static void setDefaultHostnameVerifier(HostnameVerifier v)
HostnameVerifier
。
如果不调用此方法,则默认的 HostnameVerifier
假定连接不应该被允许。
v
- 默认的主机名校验器
IllegalArgumentException
- 如果
HostnameVerifier
参数为 null。
SecurityException
- 如果安全管理器存在并且其
checkPermission
方法不允许
SSLPermission("setHostnameVerifier")
getDefaultHostnameVerifier()
public static HostnameVerifier getDefaultHostnameVerifier()
HostnameVerifier
。
setDefaultHostnameVerifier(HostnameVerifier)
public void setHostnameVerifier(HostnameVerifier v)
HostnameVerifier
。
此类的新实例继承由 setDefaultHostnameVerifier
设置的默认静态主机名校验器。调用此方法会替换此对象的 HostnameVerifier
。
v
- 主机名校验器
IllegalArgumentException
- 如果
HostnameVerifier
参数为 null。
getHostnameVerifier()
,
setDefaultHostnameVerifier(HostnameVerifier)
public HostnameVerifier getHostnameVerifier()
HostnameVerifier
。
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
setDefaultSSLSocketFactory(SSLSocketFactory)
public void setSSLSocketFactory(SSLSocketFactory sf)
SSLSocketFactory
。
此类的新实例继承由 setDefaultSSLSocketFactory
设置的默认静态 SSLSocketFactory
。调用此方法会替换此对象的 SSLSocketFactory
。
sf
- SSL 套接字工厂
IllegalArgumentException
- 如果
SSLSocketFactory
参数为 null。
getSSLSocketFactory()
public SSLSocketFactory getSSLSocketFactory()
SSLSocketFactory
setSSLSocketFactory(SSLSocketFactory)