HttpsURLConnection extends HttpURLConnection
with support for https-specific features.
See http://www.w3.org/pub/WWW/Protocols/ and RFC 2818 for more details on the https specification.
This class uses HostnameVerifier and
SSLSocketFactory.
There are default implementations defined for both classes.
However, the implementations can be replaced on a per-class (static) or
per-instance basis. All new HttpsURLConnections instances
will be assigned
the "default" static values at instance creation, but they can be overridden
by calling the appropriate per-instance set method(s) before
connecting.
- Since:
- 1.4
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected HostnameVerifierThehostnameVerifierfor this object.Fields 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, responseMessageFields declared in class java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedHttpsURLConnection(URL url) Creates anHttpsURLConnectionusing the URL specified. -
Method Summary
Modifier and TypeMethodDescriptionabstract StringReturns the cipher suite in use on this connection.static HostnameVerifierGets the defaultHostnameVerifierthat is inherited by new instances of this class.static SSLSocketFactoryGets the default staticSSLSocketFactorythat is inherited by new instances of this class.Gets theHostnameVerifierin place on this instance.abstract Certificate[]Returns the certificate(s) that were sent to the server during handshaking.Returns the principal that was sent to the server during handshaking.Returns the server's principal which was established as part of defining the session.abstract Certificate[]Returns the server's certificate chain which was established as part of defining the session.Returns anOptionalcontaining theSSLSessionin use on this connection.Gets the SSL socket factory to be used when creating sockets for secure https URL connections.static voidSets the defaultHostnameVerifierinherited by a new instance of this class.static voidSets the defaultSSLSocketFactoryinherited by new instances of this class.voidSets theHostnameVerifierfor this instance.voidSets theSSLSocketFactoryto be used when this instance creates sockets for secure https URL connections.Methods declared in class java.net.HttpURLConnection
disconnect, getErrorStream, getFollowRedirects, getHeaderField, getHeaderFieldKey, getInstanceFollowRedirects, getPermission, getRequestMethod, getResponseCode, getResponseMessage, setAuthenticator, setChunkedStreamingMode, setFixedLengthStreamingMode, setFixedLengthStreamingMode, setFollowRedirects, setInstanceFollowRedirects, setRequestMethod, usingProxyMethods 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
ThehostnameVerifierfor this object.
-
-
Constructor Details
-
HttpsURLConnection
Creates anHttpsURLConnectionusing the URL specified.- Parameters:
url- the URL
-
-
Method Details
-
getCipherSuite
Returns the cipher suite in use on this connection.- Returns:
- the cipher suite
- Throws:
IllegalStateException- if this method is called before the connection has been established.
-
getLocalCertificates
Returns the certificate(s) that were sent to the server during handshaking.Note: This method is useful only when using certificate-based cipher suites.
When multiple certificates are available for use in a handshake, the implementation chooses what it considers the "best" certificate chain available, and transmits that to the other side. This method allows the caller to know which certificate chain was actually sent.
- Returns:
- an ordered array of certificates, with the client's own certificate first followed by any certificate authorities. If no certificates were sent, then null is returned.
- Throws:
IllegalStateException- if this method is called before the connection has been established.- See Also:
-
getServerCertificates
Returns the server's certificate chain which was established as part of defining the session.Note: This method can be used only when using certificate-based cipher suites; using it with non-certificate-based cipher suites, such as Kerberos, will throw an SSLPeerUnverifiedException.
Note: The returned value may not be a valid certificate chain and should not be relied on for trust decisions.
- Returns:
- an ordered array of server certificates, with the peer's own certificate first followed by any certificate authorities.
- Throws:
SSLPeerUnverifiedException- if the peer is not verified.IllegalStateException- if this method is called before the connection has been established.- See Also:
-
getPeerPrincipal
Returns the server's principal which was established as part of defining the session.Note: Subclasses should override this method. If not overridden, it will default to returning the X500Principal of the server's end-entity certificate for certificate-based ciphersuites, or throw an SSLPeerUnverifiedException for non-certificate based ciphersuites, such as Kerberos.
- Returns:
- the server's principal. Returns an X500Principal of the end-entity certificate for X509-based cipher suites, and KerberosPrincipal for Kerberos cipher suites.
- Throws:
SSLPeerUnverifiedException- if the peer was not verifiedIllegalStateException- if this method is called before the connection has been established.- Since:
- 1.5
- See Also:
-
getLocalPrincipal
Returns the principal that was sent to the server during handshaking.Note: Subclasses should override this method. If not overridden, it will default to returning the X500Principal of the end-entity certificate that was sent to the server for certificate-based ciphersuites or, return null for non-certificate based ciphersuites, such as Kerberos.
- Returns:
- the principal sent to the server. Returns an X500Principal of the end-entity certificate for X509-based cipher suites, and KerberosPrincipal for Kerberos cipher suites. If no principal was sent, then null is returned.
- Throws:
IllegalStateException- if this method is called before the connection has been established.- Since:
- 1.5
- See Also:
-
setDefaultHostnameVerifier
Sets the defaultHostnameVerifierinherited by a new instance of this class.If this method is not called, the default
HostnameVerifierassumes the connection should not be permitted.- Parameters:
v- the default host name verifier- Throws:
IllegalArgumentException- if theHostnameVerifierparameter is null.SecurityException- if a security manager exists and itscheckPermissionmethod does not allowSSLPermission("setHostnameVerifier")- See Also:
-
getDefaultHostnameVerifier
Gets the defaultHostnameVerifierthat is inherited by new instances of this class.- Returns:
- the default host name verifier
- See Also:
-
setHostnameVerifier
Sets theHostnameVerifierfor this instance.New instances of this class inherit the default static hostname verifier set by
setDefaultHostnameVerifier. Calls to this method replace this object'sHostnameVerifier.- Parameters:
v- the host name verifier- Throws:
IllegalArgumentException- if theHostnameVerifierparameter is null.- See Also:
-
getHostnameVerifier
Gets theHostnameVerifierin place on this instance.- Returns:
- the host name verifier
- See Also:
-
setDefaultSSLSocketFactory
Sets the defaultSSLSocketFactoryinherited by new instances of this class.The socket factories are used when creating sockets for secure https URL connections.
- Parameters:
sf- the default SSL socket factory- Throws:
IllegalArgumentException- if the SSLSocketFactory parameter is null.SecurityException- if a security manager exists and itscheckSetFactorymethod does not allow a socket factory to be specified.- See Also:
-
getDefaultSSLSocketFactory
Gets the default staticSSLSocketFactorythat is inherited by new instances of this class.The socket factories are used when creating sockets for secure https URL connections.
- Returns:
- the default
SSLSocketFactory - See Also:
-
setSSLSocketFactory
Sets theSSLSocketFactoryto be used when this instance creates sockets for secure https URL connections.New instances of this class inherit the default static
SSLSocketFactoryset bysetDefaultSSLSocketFactory. Calls to this method replace this object'sSSLSocketFactory.- Parameters:
sf- the SSL socket factory- Throws:
IllegalArgumentException- if theSSLSocketFactoryparameter is null.SecurityException- if a security manager exists and itscheckSetFactorymethod does not allow a socket factory to be specified.- See Also:
-
getSSLSocketFactory
Gets the SSL socket factory to be used when creating sockets for secure https URL connections.- Returns:
- the
SSLSocketFactory - See Also:
-
getSSLSession
Returns anOptionalcontaining theSSLSessionin use on this connection. Returns an emptyOptionalif the underlying implementation does not support this method.- Implementation Requirements:
- For compatibility, the default implementation of this
method returns an empty
Optional. Subclasses should override this method with an appropriate implementation since an application may need to access additional parameters associated with the SSL session. - Returns:
- an
Optionalcontaining theSSLSessionin use on this connection. - Throws:
IllegalStateException- if this method is called before the connection has been established- Since:
- 12
- See Also:
-