AI-generated Key Takeaways
-
HttpsURLConnectionextendsHttpURLConnectionto provide HTTPS-specific features, such as secure connections viaHostnameVerifierandSSLSocketFactory. -
It supports server hostname verification against the certificate through
HostnameVerifierand secure socket creation usingSSLSocketFactory. -
Default implementations for
HostnameVerifierandSSLSocketFactoryare provided, with options to customize them globally or per instance. -
HttpsURLConnectioninherits various constants, fields, and methods fromHttpURLConnectionandURLConnection, including HTTP status codes and request/response handling. -
It offers specific methods to manage secure connections, such as retrieving the cipher suite, managing certificates, and handling SSL socket factories, as well as methods inherited from
HttpURLConnectionfor general HTTP handling.
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 overriden
by calling the appropriate per-instance set method(s) before
connecting.
Inherited Constant Summary
Field Summary
| protected HostnameVerifier | hostnameVerifier | The hostnameVerifier for this object. |
Inherited Field Summary
Protected Constructor Summary
Public Method Summary
| abstract String |
getCipherSuite()
Returns the cipher suite in use on this connection.
|
| static HostnameVerifier |
getDefaultHostnameVerifier()
Gets the default
HostnameVerifier that is inherited
by new instances of this class. |
| static SSLSocketFactory |
getDefaultSSLSocketFactory()
Gets the default static
SSLSocketFactory that is
inherited by new instances of this class. |
| HostnameVerifier |
getHostnameVerifier()
Gets the
HostnameVerifier in place on this instance. |
| abstract Certificate[] |
getLocalCertificates()
Returns the certificate(s) that were sent to the server during
handshaking.
|
| Principal |
getLocalPrincipal()
Returns the principal that was sent to the server during handshaking.
|
| Principal |
getPeerPrincipal()
Returns the server's principal which was established as part of
defining the session.
|
| SSLSocketFactory |
getSSLSocketFactory()
Gets the SSL socket factory to be used when creating sockets
for secure https URL connections.
|
| abstract Certificate[] |
getServerCertificates()
Returns the server's certificate chain which was established
as part of defining the session.
|
| static void |
setDefaultHostnameVerifier(HostnameVerifier v)
Sets the default
HostnameVerifier inherited by a
new instance of this class. |
| static void |
setDefaultSSLSocketFactory(SSLSocketFactory sf)
Sets the default
SSLSocketFactory inherited by new
instances of this class. |
| void | |
| void |
setSSLSocketFactory(SSLSocketFactory sf)
Sets the
SSLSocketFactory to be used when this instance
creates sockets for secure https URL connections. |
Inherited Method Summary
Fields
Protected Constructors
protected HttpsURLConnection (URL url)
Creates an HttpsURLConnection using the
URL specified.
Parameters
| url | the URL |
|---|
Public Methods
public abstract String 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. |
|---|
public static HostnameVerifier getDefaultHostnameVerifier ()
Gets the default HostnameVerifier that is inherited
by new instances of this class.
Returns
- the default host name verifier
public static SSLSocketFactory getDefaultSSLSocketFactory ()
Gets the default static SSLSocketFactory that 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
public HostnameVerifier getHostnameVerifier ()
Gets the HostnameVerifier in place on this instance.
Returns
- the host name verifier
public abstract Certificate[] 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
public Principal 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. |
|---|
public Principal 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 certiticate for X509-based cipher suites, and KerberosPrincipal for Kerberos cipher suites.
Throws
| SSLPeerUnverifiedException | if the peer was not verified |
|---|---|
| IllegalStateException | if this method is called before the connection has been established. |
public SSLSocketFactory getSSLSocketFactory ()
Gets the SSL socket factory to be used when creating sockets for secure https URL connections.
Returns
- the
SSLSocketFactory
public abstract Certificate[] 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.
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
public static void setDefaultHostnameVerifier (HostnameVerifier v)
Sets the default HostnameVerifier inherited by a
new instance of this class.
If this method is not called, the default
HostnameVerifier assumes the connection should not
be permitted.
Parameters
| v | the default host name verifier |
|---|
Throws
| IllegalArgumentException | if the HostnameVerifier
parameter is null. |
|---|---|
| SecurityException | if a security manager exists and its
checkPermission method does not allow
SSLPermission("setHostnameVerifier") |
See Also
public static void setDefaultSSLSocketFactory (SSLSocketFactory sf)
Sets the default SSLSocketFactory inherited 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 its
checkSetFactory method does not allow
a socket factory to be specified. |
See Also
public void setHostnameVerifier (HostnameVerifier v)
Sets the HostnameVerifier for this instance.
New instances of this class inherit the default static hostname
verifier set by setDefaultHostnameVerifier. Calls to this method replace
this object's HostnameVerifier.
Parameters
| v | the host name verifier |
|---|
Throws
| IllegalArgumentException | if the HostnameVerifier
parameter is null. |
|---|
public void setSSLSocketFactory (SSLSocketFactory sf)
Sets the SSLSocketFactory to be used when this instance
creates sockets for secure https URL connections.
New instances of this class inherit the default static
SSLSocketFactory set by
setDefaultSSLSocketFactory. Calls to this method replace
this object's SSLSocketFactory.
Parameters
| sf | the SSL socket factory |
|---|
Throws
| IllegalArgumentException | if the SSLSocketFactory
parameter is null. |
|---|