Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited Constants](https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#inhconstants) \| [Fields](https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#lfields) \| [Inherited Fields](https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#inhfields) \| [Protected Ctors](https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#proctors) \| [Methods](https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#inhmethods)

# HttpsURLConnection


`
public


abstract
class
HttpsURLConnection
`


`


`

`


`

`

extends https://developer.android.com/reference/java/net/HttpURLConnection


`

`


`

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [java.net.URLConnection](https://developer.android.com/reference/java/net/URLConnection) |||
|   | ↳ | [java.net.HttpURLConnection](https://developer.android.com/reference/java/net/HttpURLConnection) ||
|   |   | ↳ | javax.net.ssl.HttpsURLConnection |

<br />

*** ** * ** ***

`HttpsURLConnection` extends `HttpURLConnection`
with support for https-specific features.


See <http://www.w3.org/pub/WWW/Protocols/> and
[RFC 2818](http://www.ietf.org/)
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 `HttpsURLConnection`s 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
`connect`ing.

## Summary

| ### Inherited constants |
|---|
| From class `https://developer.android.com/reference/java/net/HttpURLConnection` |---|---| | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_ACCEPTED` HTTP Status-Code 202: Accepted. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_BAD_GATEWAY` HTTP Status-Code 502: Bad Gateway. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_BAD_METHOD` HTTP Status-Code 405: Method Not Allowed. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_BAD_REQUEST` HTTP Status-Code 400: Bad Request. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_CLIENT_TIMEOUT` HTTP Status-Code 408: Request Time-Out. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_CONFLICT` HTTP Status-Code 409: Conflict. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_CREATED` HTTP Status-Code 201: Created. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_ENTITY_TOO_LARGE` HTTP Status-Code 413: Request Entity Too Large. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_FORBIDDEN` HTTP Status-Code 403: Forbidden. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_GATEWAY_TIMEOUT` HTTP Status-Code 504: Gateway Timeout. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_GONE` HTTP Status-Code 410: Gone. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_INTERNAL_ERROR` HTTP Status-Code 500: Internal Server Error. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_LENGTH_REQUIRED` HTTP Status-Code 411: Length Required. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_MOVED_PERM` HTTP Status-Code 301: Moved Permanently. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_MOVED_TEMP` HTTP Status-Code 302: Temporary Redirect. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_MULT_CHOICE` HTTP Status-Code 300: Multiple Choices. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_NOT_ACCEPTABLE` HTTP Status-Code 406: Not Acceptable. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_NOT_AUTHORITATIVE` HTTP Status-Code 203: Non-Authoritative Information. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_NOT_FOUND` HTTP Status-Code 404: Not Found. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_NOT_IMPLEMENTED` HTTP Status-Code 501: Not Implemented. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_NOT_MODIFIED` HTTP Status-Code 304: Not Modified. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_NO_CONTENT` HTTP Status-Code 204: No Content. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_OK` HTTP Status-Code 200: OK. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_PARTIAL` HTTP Status-Code 206: Partial Content. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_PAYMENT_REQUIRED` HTTP Status-Code 402: Payment Required. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_PRECON_FAILED` HTTP Status-Code 412: Precondition Failed. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_PROXY_AUTH` HTTP Status-Code 407: Proxy Authentication Required. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_REQ_TOO_LONG` HTTP Status-Code 414: Request-URI Too Large. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_RESET` HTTP Status-Code 205: Reset Content. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_SEE_OTHER` HTTP Status-Code 303: See Other. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_SERVER_ERROR` *This constant was deprecated in API level 15. it is misplaced and shouldn't have existed.* | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_UNAUTHORIZED` HTTP Status-Code 401: Unauthorized. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_UNAVAILABLE` HTTP Status-Code 503: Service Unavailable. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_UNSUPPORTED_TYPE` HTTP Status-Code 415: Unsupported Media Type. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_USE_PROXY` HTTP Status-Code 305: Use Proxy. | | `int` | `https://developer.android.com/reference/java/net/HttpURLConnection#HTTP_VERSION` HTTP Status-Code 505: HTTP Version Not Supported. | |

| ### Fields ||
|---|---|
| ` protected https://developer.android.com/reference/javax/net/ssl/HostnameVerifier` | `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#hostnameVerifier` The `hostnameVerifier` for this object. |

| ### Inherited fields |
|---|
| From class `https://developer.android.com/reference/java/net/HttpURLConnection` |---|---| | ` protected int` | `https://developer.android.com/reference/java/net/HttpURLConnection#chunkLength` The chunk-length when using chunked encoding streaming mode for output. | | ` protected int` | `https://developer.android.com/reference/java/net/HttpURLConnection#fixedContentLength` The fixed content-length when using fixed-length streaming mode. | | ` protected long` | `https://developer.android.com/reference/java/net/HttpURLConnection#fixedContentLengthLong` The fixed content-length when using fixed-length streaming mode. | | ` protected boolean` | `https://developer.android.com/reference/java/net/HttpURLConnection#instanceFollowRedirects` If `true`, the protocol will automatically follow redirects. | | ` protected https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/java/net/HttpURLConnection#method` The HTTP method (GET,POST,PUT,etc.). | | ` protected int` | `https://developer.android.com/reference/java/net/HttpURLConnection#responseCode` An `int` representing the three digit HTTP Status-Code. | | ` protected https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/java/net/HttpURLConnection#responseMessage` The HTTP response message. | |
| From class `https://developer.android.com/reference/java/net/URLConnection` |---|---| | ` protected boolean` | `https://developer.android.com/reference/java/net/URLConnection#allowUserInteraction` If `true`, this `URL` is being examined in a context in which it makes sense to allow user interactions such as popping up an authentication dialog. | | ` protected boolean` | `https://developer.android.com/reference/java/net/URLConnection#connected` If `false`, this connection object has not created a communications link to the specified URL. | | ` protected boolean` | `https://developer.android.com/reference/java/net/URLConnection#doInput` This variable is set by the `setDoInput` method. | | ` protected boolean` | `https://developer.android.com/reference/java/net/URLConnection#doOutput` This variable is set by the `setDoOutput` method. | | ` protected long` | `https://developer.android.com/reference/java/net/URLConnection#ifModifiedSince` Some protocols support skipping the fetching of the object unless the object has been modified more recently than a certain time. | | ` protected https://developer.android.com/reference/java/net/URL` | `https://developer.android.com/reference/java/net/URLConnection#url` The URL represents the remote object on the World Wide Web to which this connection is opened. | | ` protected boolean` | `https://developer.android.com/reference/java/net/URLConnection#useCaches` If `true`, the protocol is allowed to use caching whenever it can. | |

| ### Protected constructors ||
|---|---|
| ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#HttpsURLConnection(java.net.URL)(https://developer.android.com/reference/java/net/URL url) ` Creates an `HttpsURLConnection` using the URL specified. |

| ### Public methods ||
|---|---|
| ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getCipherSuite()() ` Returns the cipher suite in use on this connection. |
| ` static https://developer.android.com/reference/javax/net/ssl/HostnameVerifier` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getDefaultHostnameVerifier()() ` Gets the default `HostnameVerifier` that is inherited by new instances of this class. |
| ` static https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getDefaultSSLSocketFactory()() ` Gets the default static `SSLSocketFactory` that is inherited by new instances of this class. |
| ` https://developer.android.com/reference/javax/net/ssl/HostnameVerifier` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getHostnameVerifier()() ` Gets the `HostnameVerifier` in place on this instance. |
| ` abstract https://developer.android.com/reference/java/security/cert/Certificate` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getLocalCertificates()() ` Returns the certificate(s) that were sent to the server during handshaking. |
| ` https://developer.android.com/reference/java/security/Principal` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getLocalPrincipal()() ` Returns the principal that was sent to the server during handshaking. |
| ` https://developer.android.com/reference/java/security/Principal` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getPeerPrincipal()() ` Returns the server's principal which was established as part of defining the session. |
| ` https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getSSLSocketFactory()() ` Gets the SSL socket factory to be used when creating sockets for secure https URL connections. |
| ` abstract https://developer.android.com/reference/java/security/cert/Certificate` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getServerCertificates()() ` Returns the server's certificate chain which was established as part of defining the session. |
| ` static void` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultHostnameVerifier(javax.net.ssl.HostnameVerifier)(https://developer.android.com/reference/javax/net/ssl/HostnameVerifier v) ` Sets the default `HostnameVerifier` inherited by a new instance of this class. |
| ` static void` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultSSLSocketFactory(javax.net.ssl.SSLSocketFactory)(https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory sf) ` Sets the default `SSLSocketFactory` inherited by new instances of this class. |
| ` void` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setHostnameVerifier(javax.net.ssl.HostnameVerifier)(https://developer.android.com/reference/javax/net/ssl/HostnameVerifier v) ` Sets the `HostnameVerifier` for this instance. |
| ` void` | ` https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setSSLSocketFactory(javax.net.ssl.SSLSocketFactory)(https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory sf) ` Sets the `SSLSocketFactory` to be used when this instance creates sockets for secure https URL connections. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/net/HttpURLConnection ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#disconnect()() ` Indicates that other requests to the server are unlikely in the near future. | | ` https://developer.android.com/reference/java/io/InputStream` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getErrorStream()() ` Returns the error stream if the connection failed but the server sent useful data nonetheless. | | ` static boolean` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getFollowRedirects()() ` Returns a `boolean` indicating whether or not HTTP redirects (3xx) should be automatically followed. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getHeaderField(int)(int n) ` Returns the value for the `n`^th^ header field. | | ` long` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getHeaderFieldDate(java.lang.String,%20long)(https://developer.android.com/reference/java/lang/String name, long Default) ` Returns the value of the named field parsed as date. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getHeaderFieldKey(int)(int n) ` Returns the key for the `n`^th^ header field. | | ` boolean` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getInstanceFollowRedirects()() ` Returns the value of this `HttpURLConnection`'s `instanceFollowRedirects` field. | | ` https://developer.android.com/reference/java/security/Permission` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getPermission()() ` Returns a `https://developer.android.com/reference/java/net/SocketPermission` object representing the permission necessary to connect to the destination host and port. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getRequestMethod()() ` Get the request method. | | ` int` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getResponseCode()() ` Gets the status code from an HTTP response message. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/HttpURLConnection#getResponseMessage()() ` Gets the HTTP response message, if any, returned along with the response code from a server. | | ` void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#setChunkedStreamingMode(int)(int chunklen) ` This method is used to enable streaming of a HTTP request body without internal buffering, when the content length is **not** known in advance. | | ` void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#setFixedLengthStreamingMode(int)(int contentLength) ` This method is used to enable streaming of a HTTP request body without internal buffering, when the content length is known in advance. | | ` void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#setFixedLengthStreamingMode(long)(long contentLength) ` This method is used to enable streaming of a HTTP request body without internal buffering, when the content length is known in advance. | | ` static void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#setFollowRedirects(boolean)(boolean set) ` Sets whether HTTP redirects (requests with response code 3xx) should be automatically followed by this class. | | ` void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#setInstanceFollowRedirects(boolean)(boolean followRedirects) ` Sets whether HTTP redirects (requests with response code 3xx) should be automatically followed by this `HttpURLConnection` instance. | | ` void` | ` https://developer.android.com/reference/java/net/HttpURLConnection#setRequestMethod(java.lang.String)(https://developer.android.com/reference/java/lang/String method) ` Set the method for the URL request, one of: - GET - POST - HEAD - OPTIONS - PUT - DELETE - TRACE are legal, subject to protocol restrictions. <br /> | | ` abstract boolean` | ` https://developer.android.com/reference/java/net/HttpURLConnection#usingProxy()() ` Indicates if the connection is going through a proxy. | ||
| From class ` https://developer.android.com/reference/java/net/URLConnection ` |---|---| | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#addRequestProperty(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/java/lang/String value) ` Adds a general request property specified by a key-value pair. | | ` abstract void` | ` https://developer.android.com/reference/java/net/URLConnection#connect()() ` Opens a communications link to the resource referenced by this URL, if such a connection has not already been established. | | ` boolean` | ` https://developer.android.com/reference/java/net/URLConnection#getAllowUserInteraction()() ` Returns the value of the `allowUserInteraction` field for this object. | | ` int` | ` https://developer.android.com/reference/java/net/URLConnection#getConnectTimeout()() ` Returns setting for connect timeout. | | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/net/URLConnection#getContent()() ` Retrieves the contents of this URL connection. | | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/net/URLConnection#getContent(java.lang.Class[])(https://developer.android.com/reference/java/lang/Class classes) ` Retrieves the contents of this URL connection. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getContentEncoding()() ` Returns the value of the `content-encoding` header field. | | ` int` | ` https://developer.android.com/reference/java/net/URLConnection#getContentLength()() ` Returns the value of the `content-length` header field. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getContentLengthLong()() ` Returns the value of the `content-length` header field as a long. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getContentType()() ` Returns the value of the `content-type` header field. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getDate()() ` Returns the value of the `date` header field. | | ` static boolean` | ` https://developer.android.com/reference/java/net/URLConnection#getDefaultAllowUserInteraction()() ` Returns the default value of the `allowUserInteraction` field. | | ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getDefaultRequestProperty(java.lang.String)(https://developer.android.com/reference/java/lang/String key) ` *This method was deprecated in API level 15. The instance specific getRequestProperty method should be used after an appropriate instance of URLConnection is obtained.* | | ` boolean` | ` https://developer.android.com/reference/java/net/URLConnection#getDefaultUseCaches()() ` Returns the default value of a `URLConnection`'s `useCaches` flag. | | ` boolean` | ` https://developer.android.com/reference/java/net/URLConnection#getDoInput()() ` Returns the value of this `URLConnection`'s `doInput` flag. | | ` boolean` | ` https://developer.android.com/reference/java/net/URLConnection#getDoOutput()() ` Returns the value of this `URLConnection`'s `doOutput` flag. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getExpiration()() ` Returns the value of the `expires` header field. | | ` static https://developer.android.com/reference/java/net/FileNameMap` | ` https://developer.android.com/reference/java/net/URLConnection#getFileNameMap()() ` Returns a `https://developer.android.com/reference/java/net/FileNameMap` implementation suitable for guessing a content type based on a URL's "file" component. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderField(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` Returns the value of the named header field. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderField(int)(int n) ` Returns the value for the `n`^th^ header field. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderFieldDate(java.lang.String,%20long)(https://developer.android.com/reference/java/lang/String name, long Default) ` Returns the value of the named field parsed as date. | | ` int` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderFieldInt(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String name, int Default) ` Returns the value of the named field parsed as a number. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderFieldKey(int)(int n) ` Returns the key for the `n`^th^ header field. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderFieldLong(java.lang.String,%20long)(https://developer.android.com/reference/java/lang/String name, long Default) ` Returns the value of the named field parsed as a number. | | ` https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>>` | ` https://developer.android.com/reference/java/net/URLConnection#getHeaderFields()() ` Returns an unmodifiable Map of the header fields. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getIfModifiedSince()() ` Returns the value of this object's `ifModifiedSince` field. | | ` https://developer.android.com/reference/java/io/InputStream` | ` https://developer.android.com/reference/java/net/URLConnection#getInputStream()() ` Returns an input stream that reads from this open connection. | | ` long` | ` https://developer.android.com/reference/java/net/URLConnection#getLastModified()() ` Returns the value of the `last-modified` header field. | | ` https://developer.android.com/reference/java/io/OutputStream` | ` https://developer.android.com/reference/java/net/URLConnection#getOutputStream()() ` Returns an output stream that writes to this connection. | | ` https://developer.android.com/reference/java/security/Permission` | ` https://developer.android.com/reference/java/net/URLConnection#getPermission()() ` Returns a permission object representing the permission necessary to make the connection represented by this object. | | ` int` | ` https://developer.android.com/reference/java/net/URLConnection#getReadTimeout()() ` Returns setting for read timeout. | | ` https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>>` | ` https://developer.android.com/reference/java/net/URLConnection#getRequestProperties()() ` Returns an unmodifiable Map of general request properties for this connection. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#getRequestProperty(java.lang.String)(https://developer.android.com/reference/java/lang/String key) ` Returns the value of the named general request property for this connection. | | ` https://developer.android.com/reference/java/net/URL` | ` https://developer.android.com/reference/java/net/URLConnection#getURL()() ` Returns the value of this `URLConnection`'s `URL` field. | | ` boolean` | ` https://developer.android.com/reference/java/net/URLConnection#getUseCaches()() ` Returns the value of this `URLConnection`'s `useCaches` field. | | ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#guessContentTypeFromName(java.lang.String)(https://developer.android.com/reference/java/lang/String fname) ` Tries to determine the content type of an object, based on the specified "file" component of a URL. | | ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#guessContentTypeFromStream(java.io.InputStream)(https://developer.android.com/reference/java/io/InputStream is) ` Tries to determine the type of an input stream based on the characters at the beginning of the input stream. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setAllowUserInteraction(boolean)(boolean allowuserinteraction) ` Set the value of the `allowUserInteraction` field of this `URLConnection`. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setConnectTimeout(int)(int timeout) ` Sets a specified timeout value, in milliseconds, to be used when opening a communications link to the resource referenced by this URLConnection. | | ` static void` | ` https://developer.android.com/reference/java/net/URLConnection#setContentHandlerFactory(java.net.ContentHandlerFactory)(https://developer.android.com/reference/java/net/ContentHandlerFactory fac) ` Sets the `ContentHandlerFactory` of an application. | | ` static void` | ` https://developer.android.com/reference/java/net/URLConnection#setDefaultAllowUserInteraction(boolean)(boolean defaultallowuserinteraction) ` Sets the default value of the `allowUserInteraction` field for all future `URLConnection` objects to the specified value. | | ` static void` | ` https://developer.android.com/reference/java/net/URLConnection#setDefaultRequestProperty(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/java/lang/String value) ` *This method was deprecated in API level 15. The instance specific setRequestProperty method should be used after an appropriate instance of URLConnection is obtained. Invoking this method will have no effect.* | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setDefaultUseCaches(boolean)(boolean defaultusecaches) ` Sets the default value of the `useCaches` field to the specified value. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setDoInput(boolean)(boolean doinput) ` Sets the value of the `doInput` field for this `URLConnection` to the specified value. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setDoOutput(boolean)(boolean dooutput) ` Sets the value of the `doOutput` field for this `URLConnection` to the specified value. | | ` static void` | ` https://developer.android.com/reference/java/net/URLConnection#setFileNameMap(java.net.FileNameMap)(https://developer.android.com/reference/java/net/FileNameMap map) ` Sets the FileNameMap. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setIfModifiedSince(long)(long ifmodifiedsince) ` Sets the value of the `ifModifiedSince` field of this `URLConnection` to the specified value. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setReadTimeout(int)(int timeout) ` Sets the read timeout to a specified timeout, in milliseconds. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setRequestProperty(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String key, https://developer.android.com/reference/java/lang/String value) ` Sets the general request property. | | ` void` | ` https://developer.android.com/reference/java/net/URLConnection#setUseCaches(boolean)(boolean usecaches) ` Sets the value of the `useCaches` field of this `URLConnection` to the specified value. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLConnection#toString()() ` Returns a `String` representation of this URL connection. | ||
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Fields

### hostnameVerifier

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected HostnameVerifier hostnameVerifier
```

The `hostnameVerifier` for this object.

<br />

## Protected constructors

### HttpsURLConnection

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected HttpsURLConnection (URL url)
```

Creates an `HttpsURLConnection` using the
URL specified.

<br />

| Parameters ||
|---|---|
| `url` | `URL`: the URL <br /> |

## Public methods

### getCipherSuite

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract String getCipherSuite ()
```

Returns the cipher suite in use on this connection.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the cipher suite <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if this method is called before the connection has been established. |

### getDefaultHostnameVerifier

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static HostnameVerifier getDefaultHostnameVerifier ()
```

Gets the default `HostnameVerifier` that is inherited
by new instances of this class.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/javax/net/ssl/HostnameVerifier` | the default host name verifier <br /> |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultHostnameVerifier(javax.net.ssl.HostnameVerifier)`

### getDefaultSSLSocketFactory

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory` | the default `SSLSocketFactory` <br /> |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultSSLSocketFactory(javax.net.ssl.SSLSocketFactory)`

### getHostnameVerifier

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public HostnameVerifier getHostnameVerifier ()
```

Gets the `HostnameVerifier` in place on this instance.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/javax/net/ssl/HostnameVerifier` | the host name verifier <br /> |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setHostnameVerifier(javax.net.ssl.HostnameVerifier)`
- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultHostnameVerifier(javax.net.ssl.HostnameVerifier)`

### getLocalCertificates

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/security/cert/Certificate` | 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. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if this method is called before the connection has been established. |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getLocalPrincipal()`

### getLocalPrincipal

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/security/Principal` | 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. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if this method is called before the connection has been established. |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getLocalCertificates()`
- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getPeerPrincipal()`

### getPeerPrincipal

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/security/Principal` | the server's principal. Returns an X500Principal of the end-entity certiticate for X509-based cipher suites, and KerberosPrincipal for Kerberos cipher suites. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if this method is called before the connection has been established. |
| `https://developer.android.com/reference/javax/net/ssl/SSLPeerUnverifiedException` | if the peer was not verified |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getServerCertificates()`
- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getLocalPrincipal()`

### getSSLSocketFactory

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SSLSocketFactory getSSLSocketFactory ()
```

Gets the SSL socket factory to be used when creating sockets
for secure https URL connections.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory` | the `SSLSocketFactory` <br /> |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setSSLSocketFactory(javax.net.ssl.SSLSocketFactory)`

### getServerCertificates

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/security/cert/Certificate` | an ordered array of server certificates, with the peer's own certificate first followed by any certificate authorities. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if this method is called before the connection has been established. |
| `https://developer.android.com/reference/javax/net/ssl/SSLPeerUnverifiedException` | if the peer is not verified. |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getPeerPrincipal()`

### setDefaultHostnameVerifier

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static void setDefaultHostnameVerifier (HostnameVerifier v)
```

Sets the default `HostnameVerifier` inherited by a
new instance of this class.


Developers are *strongly* discouraged from changing the default
`HostnameVerifier` as `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getDefaultHostnameVerifier()` is used by several
classes for hostname verification on Android.

| User | Effect |
|---|---|
| Android's default `https://developer.android.com/reference/javax/net/ssl/TrustManager`, as used with Android's default `https://developer.android.com/reference/javax/net/ssl/SSLContext`, `https://developer.android.com/reference/javax/net/ssl/SSLSocketFactory` and `https://developer.android.com/reference/javax/net/ssl/SSLSocket` implementations. | The `HostnameVerifier` is used to verify the peer's certificate hostname after connecting if `SSLParameters.setEndpointIdentificationAlgorithm("HTTPS")` has been called. Instances use the *current* default `HostnameVerifier` at verification time. |
| `https://developer.android.com/reference/android/net/SSLCertificateSocketFactory` | The current default `HostnameVerifier` is used from various `createSocket` methods. See `https://developer.android.com/reference/android/net/SSLCertificateSocketFactory` for details; for example `https://developer.android.com/reference/android/net/SSLCertificateSocketFactory#createSocket(java.lang.String,%20int)`. |
| Android's default `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection` implementation. | The `HostnameVerifier` is used after a successful TLS handshake to verify the URI host against the TLS session server. Instances use the default `HostnameVerifier` set *when they were created* unless overridden with `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setHostnameVerifier(javax.net.ssl.HostnameVerifier)`. Android's `HttpsURLConnection` relies on the `HostnameVerifier` for the *entire* hostname verification step. |


If this method is not called, the default `HostnameVerifier` will check the
hostname according to RFC 2818.

<br />

| Parameters ||
|---|---|
| `v` | `HostnameVerifier`: the default host name verifier <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `HostnameVerifier` parameter is null. |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkPermission` method does not allow `SSLPermission("setHostnameVerifier")` |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getDefaultHostnameVerifier()`

### setDefaultSSLSocketFactory

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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.

<br />

| Parameters ||
|---|---|
| `sf` | `SSLSocketFactory`: the default SSL socket factory <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the SSLSocketFactory parameter is null. |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkSetFactory` method does not allow a socket factory to be specified. |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getDefaultSSLSocketFactory()`

### setHostnameVerifier

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setHostnameVerifier (HostnameVerifier v)
```

Sets the `HostnameVerifier` for this instance.


New instances of this class inherit the default static hostname
verifier set by `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultHostnameVerifier(javax.net.ssl.HostnameVerifier)`. Calls to this method replace
this object's `HostnameVerifier`.


Android's `HttpsURLConnection` relies on the `HostnameVerifier`
for the *entire* hostname verification step.

<br />

| Parameters ||
|---|---|
| `v` | `HostnameVerifier`: the host name verifier <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `HostnameVerifier` parameter is null. |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getHostnameVerifier()`
- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultHostnameVerifier(javax.net.ssl.HostnameVerifier)`

### setSSLSocketFactory

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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
`https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#setDefaultSSLSocketFactory(javax.net.ssl.SSLSocketFactory)`. Calls to this method replace
this object's `SSLSocketFactory`.

<br />

| Parameters ||
|---|---|
| `sf` | `SSLSocketFactory`: the SSL socket factory <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `SSLSocketFactory` parameter is null. |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkSetFactory` method does not allow a socket factory to be specified. |

**See also:**

- `https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection#getSSLSocketFactory()`