Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/net/CookieHandler#pubctors) \| [Methods](https://developer.android.com/reference/java/net/CookieHandler#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/net/CookieHandler#inhmethods)

# CookieHandler

` public abstract class CookieHandler `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.net.CookieHandler |

Known direct subclasses [CookieManager](https://developer.android.com/reference/java/net/CookieManager) [CookieManager](https://developer.android.com/reference/java/net/CookieManager) CookieManager provides a concrete implementation of `https://developer.android.com/reference/java/net/CookieHandler`, which separates the storage of cookies from the policy surrounding accepting and rejecting cookies.   

*** ** * ** ***

A CookieHandler object provides a callback mechanism to hook up a HTTP state management policy implementation into the HTTP protocol handler. The HTTP state management mechanism specifies a way to create a stateful session with HTTP requests and responses.

A system-wide CookieHandler to be used by the [HTTP URL stream protocol handler](https://developer.android.com/reference/java/net/HttpURLConnection) can be registered by doing a CookieHandler.setDefault(CookieHandler). The currently registered CookieHandler can be retrieved by calling CookieHandler.getDefault(). For more information on HTTP state management, see [*RFC 2965: HTTP State Management Mechanism*](http://www.ietf.org/rfc/rfc2965.txt)

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/net/CookieHandler#CookieHandler()() ` |

| ### Public methods ||
|---|---|
| ` abstract 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/CookieHandler#get(java.net.URI,%20java.util.Map<java.lang.String,java.util.List<java.lang.String>>)(https://developer.android.com/reference/java/net/URI uri, 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>> requestHeaders) ` Gets all the applicable cookies from a cookie cache for the specified uri in the request header. |
| ` static https://developer.android.com/reference/java/net/CookieHandler` | ` https://developer.android.com/reference/java/net/CookieHandler#getDefault()() ` Gets the system-wide cookie handler. |
| ` abstract void` | ` https://developer.android.com/reference/java/net/CookieHandler#put(java.net.URI,%20java.util.Map<java.lang.String,java.util.List<java.lang.String>>)(https://developer.android.com/reference/java/net/URI uri, 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>> responseHeaders) ` Sets all the applicable cookies, examples are response header fields that are named Set-Cookie2, present in the response headers into a cookie cache. |
| ` static void` | ` https://developer.android.com/reference/java/net/CookieHandler#setDefault(java.net.CookieHandler)(https://developer.android.com/reference/java/net/CookieHandler cHandler) ` Sets (or unsets) the system-wide cookie handler. |

### Inherited methods

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

## Public constructors

### CookieHandler

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

```
public CookieHandler ()
```

<br />

<br />

## Public methods

### get

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

```
public abstract Map<String, List<String>> get (URI uri, 
                Map<String, List<String>> requestHeaders)
```

Gets all the applicable cookies from a cookie cache for the specified uri in the request header.

The `URI` passed as an argument specifies the intended use for the cookies. In particular the scheme should reflect whether the cookies will be sent over http, https or used in another context like javascript. The host part should reflect either the destination of the cookies or their origin in the case of javascript.

It is up to the implementation to take into account the `URI` and the cookies attributes and security settings to determine which ones should be returned.

HTTP protocol implementers should make sure that this method is called after all request headers related to choosing cookies are added, and before the request is sent.

<br />

<br />

| Parameters ||
|---|---|
| `uri` | `URI`: a `URI` representing the intended use for the cookies <br /> |
| `requestHeaders` | `Map`: - a Map from request header field names to lists of field values representing the current request headers <br /> |

| Returns ||
|---|---|
| `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>>` | an immutable map from state management headers, with field names "Cookie" or "Cookie2" to a list of cookies containing state information <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if either argument is null |

**See also:**

- `https://developer.android.com/reference/java/net/CookieHandler#put(java.net.URI,%20java.util.Map<java.lang.String,java.util.List<java.lang.String>>)`

### getDefault

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

```
public static CookieHandler getDefault ()
```

Gets the system-wide cookie handler.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/net/CookieHandler` | the system-wide cookie handler; A null return means there is no system-wide cookie handler currently set. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/SecurityException` | If a security manager has been installed and it denies `https://developer.android.com/reference/java/net/NetPermission``("getCookieHandler")` |

**See also:**

- `https://developer.android.com/reference/java/net/CookieHandler#setDefault(java.net.CookieHandler)`

### put

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

```
public abstract void put (URI uri, 
                Map<String, List<String>> responseHeaders)
```

Sets all the applicable cookies, examples are response header fields that are named Set-Cookie2, present in the response headers into a cookie cache.

<br />

| Parameters ||
|---|---|
| `uri` | `URI`: a `URI` where the cookies come from <br /> |
| `responseHeaders` | `Map`: an immutable map from field names to lists of field values representing the response header fields returned <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if either argument is null |

**See also:**

- `https://developer.android.com/reference/java/net/CookieHandler#get(java.net.URI,%20java.util.Map<java.lang.String,java.util.List<java.lang.String>>)`

### setDefault

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

```
public static void setDefault (CookieHandler cHandler)
```

Sets (or unsets) the system-wide cookie handler. Note: non-standard http protocol handlers may ignore this setting.

<br />

| Parameters ||
|---|---|
| `cHandler` | `CookieHandler`: The HTTP cookie handler, or `null` to unset. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/SecurityException` | If a security manager has been installed and it denies `https://developer.android.com/reference/java/net/NetPermission``("setCookieHandler")` |

**See also:**

- `https://developer.android.com/reference/java/net/CookieHandler#getDefault()`