Go to the latest version of this document.

# ``twisted`.`web`.`client`.`CookieAgent``

class documentation

`class CookieAgent: (source)`

Constructor: `CookieAgent(agent, cookieJar)`

Implements interfaces: `twisted.web.iweb.IAgent`

View In Hierarchy

`CookieAgent` extends the basic `Agent` to add RFC-compliant handling of HTTP cookies. Cookies are written to and extracted from a `CookieJar` instance.

The same cookie jar instance will be used for any requests through this agent, mutating it whenever a Set-Cookie header appears in a response.

Present Since
11.1

Method | `__init__` | IAgent does not have any particular requirement upon its constructor.
Method | `request` | Issue a new request to the wrapped `Agent`.
Instance Variable | `cookieJar` | Initialized cookie jar to read cookies from and store cookies to.
Method | `_extractCookies` | Extract response cookies and store them in the cookie jar.
Instance Variable | `_agent` | Underlying Twisted Web agent to issue requests through.

def __init__(self, agent: `IAgent`, cookieJar: `CookieJar`): (source)
from `twisted.web.iweb.IAgent`

IAgent does not have any particular requirement upon its constructor.

def request(self, method: `bytes`, uri: `bytes`, headers: `Headers | None` = None, bodyProducer: `IBodyProducer | None` = None) -> `Deferred[IResponse]`: (source)
from `twisted.web.iweb.IAgent`

Issue a new request to the wrapped `Agent`.

Send a Cookie header if a cookie for `uri` is stored in `CookieAgent.cookieJar`. Cookies are automatically extracted and stored from requests.

If a `'cookie'` header appears in `headers` it will override the automatic cookie header obtained from the cookie jar.

See Also
`Agent.request`

cookieJar: `CookieJar` = (source)

Initialized cookie jar to read cookies from and store cookies to.

def _extractCookies(self, response: `IResponse`, request: `_FakeStdlibRequest`) -> `IResponse`: (source)

Extract response cookies and store them in the cookie jar.

Parameters
response:`IResponse` | the Twisted Web response that we are processing.
request:`_FakeStdlibRequest` | A `_FakeStdlibRequest` wrapping our Twisted request, for `CookieJar` to extract cookies from.

Returns
`IResponse` | Undocumented

_agent: `IAgent` = (source)

Underlying Twisted Web agent to issue requests through.