javax.net.ssl

接口
异常
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

此类使用 HostnameVerifierSSLSocketFactory。为这两个类都定义了默认实现。但是,可以根据每个类(静态的)或每个实例来替换该实现。所有新 HttpsURLConnection 实例在创建时将被分配“默认的”静态值,通过在连接前调用每个实例适当的 set 方法可以重写这些值。

从以下版本开始:
1.4

字段摘要
protected  HostnameVerifier hostnameVerifier
          此对象的 hostnameVerifier
 
从类 java.net.HttpURLConnection 继承的字段
chunkLength, fixedContentLength, 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
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.net.HttpURLConnection 继承的方法
disconnect, getErrorStream, getFollowRedirects, getHeaderField, getHeaderFieldDate, getHeaderFieldKey, getInstanceFollowRedirects, getPermission, getRequestMethod, getResponseCode, getResponseMessage, setChunkedStreamingMode, setFixedLengthStreamingMode, setFollowRedirects, setInstanceFollowRedirects, setRequestMethod, usingProxy
 
从类 java.net.URLConnection 继承的方法
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

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 的密码套件的终端实体证书的 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 假定连接不应该被允许。

参数:
v - 默认的主机名校验器
抛出:
IllegalArgumentException - 如果 HostnameVerifier 参数为 null。
SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许 SSLPermission("setHostnameVerifier")
另请参见:
getDefaultHostnameVerifier()

getDefaultHostnameVerifier

public static HostnameVerifier getDefaultHostnameVerifier()
获取此类的新实例所继承的默认 HostnameVerifier

返回:
默认的主机名校验器
另请参见:
setDefaultHostnameVerifier(HostnameVerifier)

setHostnameVerifier

public void setHostnameVerifier(HostnameVerifier v)
设置此实例的 HostnameVerifier

此类的新实例继承由 setDefaultHostnameVerifier 设置的默认静态主机名校验器。调用此方法会替换此对象的 HostnameVerifier

参数:
v - 主机名校验器
抛出:
IllegalArgumentException - 如果 HostnameVerifier 参数为 null。
另请参见:
getHostnameVerifier(), setDefaultHostnameVerifier(HostnameVerifier)

getHostnameVerifier

public HostnameVerifier getHostnameVerifier()
获取此实例适当的 HostnameVerifier

返回:
主机名校验器
另请参见:
setHostnameVerifier(HostnameVerifier), setDefaultHostnameVerifier(HostnameVerifier)

setDefaultSSLSocketFactory

public static void setDefaultSSLSocketFactory(SSLSocketFactory sf)
设置此类的新实例所继承的默认 SSLSocketFactory

当为安全 https URL 连接创建套接字时使用套接字工厂。

参数:
sf - 默认的 SSL 套接字工厂
抛出:
IllegalArgumentException - 如果 SSLSocketFactory 参数为 null。
SecurityException - 如果安全管理器存在并且其 checkSetFactory 方法不允许指定套接字工厂。
另请参见:
getDefaultSSLSocketFactory()

getDefaultSSLSocketFactory

public static SSLSocketFactory getDefaultSSLSocketFactory()
获取此类的新实例所继承的默认静态 SSLSocketFactory

当为安全 https URL 连接创建套接字时使用套接字工厂。

返回:
默认的 SSLSocketFactory
另请参见:
setDefaultSSLSocketFactory(SSLSocketFactory)

setSSLSocketFactory

public void setSSLSocketFactory(SSLSocketFactory sf)
设置当此实例为安全 https URL 连接创建套接字时使用的 SSLSocketFactory

此类的新实例继承由 setDefaultSSLSocketFactory 设置的默认静态 SSLSocketFactory。调用此方法会替换此对象的 SSLSocketFactory

参数:
sf - SSL 套接字工厂
抛出:
IllegalArgumentException - 如果 SSLSocketFactory 参数为 null。
另请参见:
getSSLSocketFactory()

getSSLSocketFactory

public SSLSocketFactory getSSLSocketFactory()
获取为安全 https URL 连接创建套接字时使用的 SSL 套接字工厂。

返回:
SSLSocketFactory
另请参见:
setSSLSocketFactory(SSLSocketFactory)