HttpsURLConnection
扩展了支持https特定功能的HttpURLConnection
。
查看http://www.w3.org/pub/WWW/Protocols/和RFC 2818以获取有关https规范的更多详细信息。
此类使用HostnameVerifier
和SSLSocketFactory
。这两个类都有默认实现。但是,这些实现可以在每个类(静态)或每个实例的基础上进行替换。所有新的HttpsURLConnection
实例在创建时将被分配“默认”静态值,但可以通过在connect
之前调用适当的每个实例设置方法来覆盖它们。
- 自版本:
- 1.4
-
Field Summary
FieldsFields declared in 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 declared in class java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
HttpsURLConnection
(URL url) 使用指定的URL创建一个HttpsURLConnection
。 -
Method Summary
Modifier and TypeMethodDescriptionabstract String
返回此连接上正在使用的密码套件。static HostnameVerifier
获取此类的新实例继承的默认HostnameVerifier
。static SSLSocketFactory
获取此类的新实例继承的默认静态SSLSocketFactory
。获取此实例上的HostnameVerifier
。abstract Certificate[]
返回在握手期间发送到服务器的证书。返回在握手期间发送到服务器的主体。返回作为定义会话的一部分建立的服务器主体。abstract Certificate[]
返回作为定义会话的一部分建立的服务器证书链。返回包含此连接上正在使用的SSLSession
的Optional
。获取用于为安全https URL连接创建套接字的SSL套接字工厂。static void
设置新实例继承的默认HostnameVerifier
。static void
设置新实例继承的默认SSLSocketFactory
。void
设置此实例的HostnameVerifier
。void
设置此实例在为安全https URL连接创建套接字时要使用的SSLSocketFactory
。Methods declared in class java.net.HttpURLConnection
disconnect, getErrorStream, getFollowRedirects, getHeaderField, getHeaderFieldKey, getInstanceFollowRedirects, getPermission, getRequestMethod, getResponseCode, getResponseMessage, setAuthenticator, setChunkedStreamingMode, setFixedLengthStreamingMode, setFixedLengthStreamingMode, setFollowRedirects, setInstanceFollowRedirects, setRequestMethod, usingProxy
Methods declared in class java.net.URLConnection
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldDate, 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
-
Field Details
-
hostnameVerifier
此对象的hostnameVerifier
。
-
-
Constructor Details
-
HttpsURLConnection
使用指定的URL创建一个HttpsURLConnection
。- 参数:
-
url
- URL
-
-
Method Details
-
getCipherSuite
返回此连接上正在使用的密码套件。- 返回:
- 密码套件
- 抛出:
-
IllegalStateException
- 如果在建立连接之前调用此方法。
-
getLocalCertificates
返回在握手期间发送到服务器的证书。注意:仅在使用基于证书的密码套件时,此方法才有用。
当有多个证书可用于握手时,实现会选择其认为是可用的“最佳”证书链,并将其传输到另一侧。此方法允许调用者了解实际发送的证书链。
- 返回:
- 一个有序的证书数组,客户端自己的证书在前,然后是任何证书颁发机构。如果未发送证书,则返回null。
- 抛出:
-
IllegalStateException
- 如果在建立连接之前调用此方法。 - 参见:
-
getServerCertificates
返回作为定义会话的一部分建立的服务器证书链。注意:仅在使用基于证书的密码套件时才能使用此方法;与非基于证书的密码套件(如Kerberos)一起使用会引发SSLPeerUnverifiedException。
注意:返回的值可能不是有效的证书链,不应依赖于其进行信任决策。
- 返回:
- 一个有序的服务器证书数组,对等方自己的证书在前,然后是任何证书颁发机构。
- 抛出:
-
SSLPeerUnverifiedException
- 如果对等方未经验证。 -
IllegalStateException
- 如果在建立连接之前调用此方法。 - 参见:
-
getPeerPrincipal
返回作为定义会话的一部分建立的服务器主体。注意:子类应重写此方法。如果未重写,它将默认返回基于证书的密码套件的服务器端实体证书的X500Principal,或对于非基于证书的密码套件(如Kerberos),将抛出SSLPeerUnverifiedException。
- 返回:
- 服务器主体。对于基于X509的密码套件,返回端实体证书的X500Principal,对于Kerberos密码套件,返回KerberosPrincipal。
- 抛出:
-
SSLPeerUnverifiedException
- 如果对等方未经验证 -
IllegalStateException
- 如果在建立连接之前调用此方法。 - 自版本:
- 1.5
- 参见:
-
getLocalPrincipal
返回在握手期间发送到服务器的主体。注意:子类应重写此方法。如果未重写,它将默认返回发送到服务器的端实体证书的X500Principal(用于基于证书的密码套件),或对于非基于证书的密码套件,返回null。
- 返回:
- 发送到服务器的主体。对于基于X509的密码套件,返回端实体证书的X500Principal,对于Kerberos密码套件,返回KerberosPrincipal。如果未发送主体,则返回null。
- 抛出:
-
IllegalStateException
- 如果在建立连接之前调用此方法。 - 自版本:
- 1.5
- 参见:
-
setDefaultHostnameVerifier
设置新实例继承的默认HostnameVerifier
。如果未调用此方法,默认
HostnameVerifier
会假定不应允许连接。- 参数:
-
v
- 默认主机名验证器 - 抛出:
-
IllegalArgumentException
- 如果HostnameVerifier
参数为null。 -
SecurityException
- 如果存在安全管理器且其checkPermission
方法不允许SSLPermission("setHostnameVerifier")
- 参见:
-
getDefaultHostnameVerifier
获取此类的新实例继承的默认HostnameVerifier
。- 返回:
- 默认主机名验证器
- 参见:
-
setHostnameVerifier
设置此实例的HostnameVerifier
。此类的新实例继承了由
setDefaultHostnameVerifier
设置的默认静态主机名验证器。调用此方法会替换此对象的HostnameVerifier
。- 参数:
-
v
- 主机名验证器 - 抛出:
-
IllegalArgumentException
- 如果HostnameVerifier
参数为null。 - 参见:
-
getHostnameVerifier
获取此实例上的HostnameVerifier
。- 返回:
- 主机名验证器
- 参见:
-
setDefaultSSLSocketFactory
设置新实例继承的默认SSLSocketFactory
。在为安全https URL连接创建套接字时使用套接字工厂。
- 参数:
-
sf
- 默认的SSL套接字工厂 - 抛出:
-
IllegalArgumentException
- 如果SSLSocketFactory参数为null。 -
SecurityException
- 如果存在安全管理器且其checkSetFactory
方法不允许指定套接字工厂。 - 参见:
-
getDefaultSSLSocketFactory
获取此类的新实例继承的默认静态SSLSocketFactory
。在创建用于安全https URL连接的套接字时使用套接字工厂。
- 返回:
-
默认的
SSLSocketFactory
- 参见:
-
setSSLSocketFactory
设置当此实例创建用于安全https URL连接的套接字时要使用的SSLSocketFactory
。此类的新实例继承由
setDefaultSSLSocketFactory
设置的默认静态SSLSocketFactory
。调用此方法会替换此对象的SSLSocketFactory
。- 参数:
-
sf
- SSL套接字工厂 - 抛出:
-
IllegalArgumentException
- 如果SSLSocketFactory
参数为null。 -
SecurityException
- 如果存在安全管理器且其checkSetFactory
方法不允许指定套接字工厂。 - 参见:
-
getSSLSocketFactory
获取用于创建安全https URL连接的SSL套接字工厂。- 返回:
-
SSLSocketFactory
- 参见:
-
getSSLSession
- 实现要求:
-
为了兼容性,此方法的默认实现返回一个空的
Optional
。子类应该使用适当的实现重写此方法,因为应用程序可能需要访问与SSL会话关联的其他参数。 - 返回:
-
包含此连接上正在使用的
SSLSession
的Optional
。 - 抛出:
-
IllegalStateException
- 如果在建立连接之前调用此方法 - 自:
- 12
- 参见:
-