```
* `def __init__([auth], [headers], [cookies], [verify], [cert], [timeout], [pool_limits], [max_redirects], [app], [dispatch])`
+* `.headers` - **Headers**
+* `.cookies` - **Cookies**
* `def .get(url, [params], [headers], [cookies], [auth], [stream], [allow_redirects], [verify], [cert], [timeout])`
* `def .options(url, [params], [headers], [cookies], [auth], [stream], [allow_redirects], [verify], [cert], [timeout])`
* `def .head(url, [params], [headers], [cookies], [auth], [stream], [allow_redirects], [verify], [cert], [timeout])`
self.base_url = URL(base_url)
self.auth = auth
- self.headers = Headers(headers)
- self.cookies = Cookies(cookies)
+ self._headers = Headers(headers)
+ self._cookies = Cookies(cookies)
self.max_redirects = max_redirects
self.dispatch = async_dispatch
self.concurrency_backend = backend
self.trust_env = True if trust_env is None else trust_env
+ @property
+ def headers(self) -> Headers:
+ return self._headers
+
+ @headers.setter
+ def headers(self, headers: HeaderTypes) -> None:
+ self._headers = Headers(headers)
+
+ @property
+ def cookies(self) -> Cookies:
+ return self._cookies
+
+ @cookies.setter
+ def cookies(self, cookies: CookieTypes) -> None:
+ self._cookies = Cookies(cookies)
+
def check_concurrency_backend(self, backend: ConcurrencyBackend) -> None:
pass # pragma: no cover
assert response.json() == {"cookies": "example-name=example-value"}
+def test_setting_client_cookies_to_cookiejar():
+ """
+ Send a request including a cookie, using a `CookieJar` instance.
+ """
+
+ url = "http://example.org/echo_cookies"
+ cookies = CookieJar()
+ cookie = Cookie(
+ version=0,
+ name="example-name",
+ value="example-value",
+ port=None,
+ port_specified=False,
+ domain="",
+ domain_specified=False,
+ domain_initial_dot=False,
+ path="/",
+ path_specified=True,
+ secure=False,
+ expires=None,
+ discard=True,
+ comment=None,
+ comment_url=None,
+ rest={"HttpOnly": None},
+ rfc2109=False,
+ )
+ cookies.set_cookie(cookie)
+
+ with Client(dispatch=MockDispatch()) as client:
+ client.cookies = cookies
+ response = client.get(url)
+
+ assert response.status_code == 200
+ assert response.json() == {"cookies": "example-name=example-value"}
+
+
def test_set_cookie_with_cookies_model():
"""
Send a request including a cookie, using a `Cookies` instance.
--- /dev/null
+from httpx import Client, Cookies, Headers
+
+
+def test_client_headers():
+ client = Client()
+ client.headers = {"a": "b"}
+ assert isinstance(client.headers, Headers)
+ assert client.headers["A"] == "b"
+
+
+def test_client_cookies():
+ client = Client()
+ client.cookies = {"a": "b"}
+ assert isinstance(client.cookies, Cookies)
+ mycookies = list(client.cookies.jar)
+ assert len(mycookies) == 1
+ assert mycookies[0].name == "a" and mycookies[0].value == "b"