- java.lang.Object
-
- java.net.URLConnection
-
- java.net.HttpURLConnection
-
- javax.net.ssl.HttpsURLConnection
-
public abstract class HttpsURLConnectionextends HttpURLConnection
HttpsURLConnection
扩展HttpURLConnection
,支持https特定功能。有关https规范的更多详细信息,请参见http://www.w3.org/pub/WWW/Protocols/和RFC 2818 。
本课程使用
HostnameVerifier
和SSLSocketFactory
。 为这两个类定义了默认实现。 但是,可以在每个类(静态)或每个实例的基础上替换实现。 所有新的HttpsURLConnection
实例将在实例创建时分配“默认”静态值,但可以通过在connect
之前调用适当的每实例设置方法来覆盖它们。- 从以下版本开始:
- 1.4
-
-
字段汇总
字段 变量和类型 字段 描述 protected HostnameVerifier
hostnameVerifier
hostnameVerifier
用于此对象。-
声明的属性在类 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
-
声明的属性在类 java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
HttpsURLConnection(URL url)
使用指定的URL创建HttpsURLConnection
。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract String
getCipherSuite()
返回此连接上使用的密码套件。static HostnameVerifier
getDefaultHostnameVerifier()
获取HostnameVerifier
的新实例继承的默认值HostnameVerifier
。static SSLSocketFactory
getDefaultSSLSocketFactory()
获取SSLSocketFactory
的新实例继承的默认静态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
的新实例继承的默认值SSLSocketFactory
。void
setHostnameVerifier(HostnameVerifier v)
为此实例设置HostnameVerifier
。void
setSSLSocketFactory(SSLSocketFactory sf)
设置此实例为安全https URL连接创建套接字时使用的SSLSocketFactory
。-
声明方法的类 java.net.HttpURLConnection
disconnect, getErrorStream, getFollowRedirects, getHeaderField, getHeaderFieldKey, getInstanceFollowRedirects, getPermission, getRequestMethod, getResponseCode, getResponseMessage, setAuthenticator, setChunkedStreamingMode, setFixedLengthStreamingMode, setFixedLengthStreamingMode, setFollowRedirects, setInstanceFollowRedirects, setRequestMethod, usingProxy
-
声明方法的类 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
-
-
-
-
字段详细信息
-
hostnameVerifier
protected HostnameVerifier hostnameVerifier
hostnameVerifier
用于此对象。
-
-
构造方法详细信息
-
HttpsURLConnection
protected HttpsURLConnection(URL url)
使用指定的URL创建HttpsURLConnection
。- 参数
-
url
- 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的密码套件的终端实体certiticate的X500Principal,以及Kerberos密码套件的KerberosPrincipal。
- 异常
-
SSLPeerUnverifiedException
- 如果未验证对等方 -
IllegalStateException
- 如果在建立连接之前调用此方法。 - 从以下版本开始:
- 1.5
- 另请参见:
-
getServerCertificates()
,getLocalPrincipal()
-
getLocalPrincipal
public Principal getLocalPrincipal()
返回握手期间发送到服务器的主体。注意:子类应覆盖此方法。 如果未被覆盖,它将默认返回为基于证书的密码套件发送到服务器的最终实体证书的X500Principal,或者对于基于非证书的密码套件(例如Kerberos)返回null。
- 结果
- 委托人发送到服务器。 返回基于X509的密码套件的终端实体证书的X500Principal,以及Kerberos密码套件的KerberosPrincipal。 如果没有发送主体,则返回null。
- 异常
-
IllegalStateException
- 如果在建立连接之前调用此方法。 - 从以下版本开始:
- 1.5
- 另请参见:
-
getLocalCertificates()
,getPeerPrincipal()
-
setDefaultHostnameVerifier
public static void setDefaultHostnameVerifier(HostnameVerifier v)
设置HostnameVerifier
的新实例继承的默认值HostnameVerifier
。如果未调用此方法,则默认值
HostnameVerifier
假定不允许连接。- 参数
-
v
- 默认主机名验证程序 - 异常
-
IllegalArgumentException
- 如果HostnameVerifier
参数为null。 -
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
参数为null。 - 另请参见:
-
getHostnameVerifier()
,setDefaultHostnameVerifier(HostnameVerifier)
-
getHostnameVerifier
public HostnameVerifier getHostnameVerifier()
获取此实例上的HostnameVerifier
。
-
setDefaultSSLSocketFactory
public static void setDefaultSSLSocketFactory(SSLSocketFactory sf)
设置SSLSocketFactory
的新实例继承的默认值SSLSocketFactory
。在为安全的https URL连接创建套接字时使用套接字工厂。
- 参数
-
sf
- 默认的SSL套接字工厂 - 异常
-
IllegalArgumentException
- 如果SSLSocketFactory参数为null。 -
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
参数为null。 -
SecurityException
- 如果存在安全管理器且其checkSetFactory
方法不允许指定套接字工厂。 - 另请参见:
-
getSSLSocketFactory()
-
getSSLSocketFactory
public SSLSocketFactory getSSLSocketFactory()
获取为安全https URL连接创建套接字时要使用的SSL套接字工厂。- 结果
-
SSLSocketFactory
- 另请参见:
-
setSSLSocketFactory(SSLSocketFactory)
-
-