- java.lang.Object
-
- java.net.URLConnection
-
- java.net.HttpURLConnection
-
- javax.net.ssl.HttpsURLConnection
-
public abstract class HttpsURLConnection extends HttpURLConnection
HttpsURLConnection
扩展了HttpURLConnection
,支持https特定的功能。有关https规范的更多详细信息,请参阅http://www.w3.org/pub/WWW/Protocols/和RFC 2818 。
该课程使用
HostnameVerifier
和SSLSocketFactory
。 为这两个类定义了默认实现。 但是,可以在每个类(静态)或每个实例的基础上替换这些实现。 所有新的HttpsURLConnection
实例将在实例创建时分配“默认”静态值,但可以通过在connect
之前调用适当的每个实例集方法来覆盖它们。- 从以下版本开始:
- 1.4
-
-
Field Summary
Fields Modifier and Type Field 描述 protected HostnameVerifier
hostnameVerifier
这个对象的hostnameVerifier
。-
Fields inherited from class java.net.HttpURLConnection
chunkLength, fixedContentLength, fixedContentLengthLong, HTTP_ACCEPTED, HTTP_BAD_GATEWAY, HTTP_BAD_METHOD, HTTP_BAD_REQUEST, HTTP_CLIENT_TIMEOUT, HTTP_CONFLICT, HTTP_CREATED, HTTP_ENTITY_TOO_LARGE, HTTP_FORBIDDEN, HTTP_GATEWAY_TIMEOUT, HTTP_GONE, HTTP_INTERNAL_ERROR, HTTP_LENGTH_REQUIRED, HTTP_MOVED_PERM, HTTP_MOVED_TEMP, HTTP_MULT_CHOICE, HTTP_NO_CONTENT, HTTP_NOT_ACCEPTABLE, HTTP_NOT_AUTHORITATIVE, HTTP_NOT_FOUND, HTTP_NOT_IMPLEMENTED, HTTP_NOT_MODIFIED, HTTP_OK, HTTP_PARTIAL, HTTP_PAYMENT_REQUIRED, HTTP_PRECON_FAILED, HTTP_PROXY_AUTH, HTTP_REQ_TOO_LONG, HTTP_RESET, HTTP_SEE_OTHER, HTTP_SERVER_ERROR, HTTP_UNAUTHORIZED, HTTP_UNAVAILABLE, HTTP_UNSUPPORTED_TYPE, HTTP_USE_PROXY, HTTP_VERSION, instanceFollowRedirects, method, responseCode, responseMessage
-
Fields inherited from class java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
HttpsURLConnection(URL url)
使用指定的URL创建一个HttpsURLConnection
。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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
的新实例继承的默认值HostnameVerifier
。static void
setDefaultSSLSocketFactory(SSLSocketFactory sf)
设置由此类的新实例继承的默认值SSLSocketFactory
。void
setHostnameVerifier(HostnameVerifier v)
为此实例设置HostnameVerifier
。void
setSSLSocketFactory(SSLSocketFactory sf)
设置当此实例为安全的https URL连接创建套接字时要使用的SSLSocketFactory
。-
Methods inherited from class java.net.HttpURLConnection
disconnect, getErrorStream, getFollowRedirects, getHeaderField, getHeaderFieldDate, getHeaderFieldKey, getInstanceFollowRedirects, getPermission, getRequestMethod, getResponseCode, getResponseMessage, setAuthenticator, setChunkedStreamingMode, setFixedLengthStreamingMode, setFixedLengthStreamingMode, setFollowRedirects, setInstanceFollowRedirects, setRequestMethod, usingProxy
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class java.net.URLConnection
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
-
-
-
-
字段详细信息
-
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()
-
getDefaultHostnameVerifier
public static HostnameVerifier getDefaultHostnameVerifier()
获取由HostnameVerifier
的新实例继承的默认值HostnameVerifier
。- 结果
- 默认主机名验证器
- 另请参见:
-
setDefaultHostnameVerifier(HostnameVerifier)
-
setHostnameVerifier
public void setHostnameVerifier(HostnameVerifier v)
设置这个实例的HostnameVerifier
。此类的新实例将继承由
setDefaultHostnameVerifier
设置的默认静态主机名验证器。 调用此方法替换此对象的HostnameVerifier
。- 参数
-
v
- 主机名验证器 - 异常
-
IllegalArgumentException
- 如果HostnameVerifier
参数为空。 - 另请参见:
-
getHostnameVerifier()
,setDefaultHostnameVerifier(HostnameVerifier)
-
getHostnameVerifier
public HostnameVerifier getHostnameVerifier()
获取此实例上的HostnameVerifier
。
-
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()
-
getSSLSocketFactory
public SSLSocketFactory getSSLSocketFactory()
获取为安全的https URL连接创建套接字时要使用的SSL套接字工厂。- 结果
-
SSLSocketFactory
- 另请参见:
-
setSSLSocketFactory(SSLSocketFactory)
-
-