from base64 import b64encode
from .compat import urlparse, str
+from .cookies import extract_cookies_to_jar
from .utils import parse_dict_header
log = logging.getLogger(__name__)
r.content
r.raw.release_conn()
prep = r.request.copy()
- prep.prepare_cookies(r.cookies)
+ extract_cookies_to_jar(prep.cookies, r.request, r.raw)
+ prep.prepare_cookies(prep.cookies)
prep.headers['Authorization'] = self.build_digest_header(
prep.method, prep.url)
self.url = None
#: dictionary of HTTP headers.
self.headers = None
+ #: The `CookieJar` used to create the Cookie header will be stored here
+ #: after prepare_cookies is called
+ self.cookies = None
#: request body to send to the server.
self.body = None
#: dictionary of callback hooks, for internal usage.
p.method = self.method
p.url = self.url
p.headers = self.headers.copy()
+ p.cookies = self.cookies.copy()
p.body = self.body
p.hooks = self.hooks
return p
"""Prepares the given HTTP cookie data."""
if isinstance(cookies, cookielib.CookieJar):
- cookies = cookies
+ self.cookies = cookies
else:
- cookies = cookiejar_from_dict(cookies)
+ self.cookies = cookiejar_from_dict(cookies)
- if 'cookie' not in self.headers:
- cookie_header = get_cookie_header(cookies, self)
- if cookie_header is not None:
- self.headers['Cookie'] = cookie_header
+ cookie_header = get_cookie_header(self.cookies, self)
+ if cookie_header is not None:
+ self.headers['Cookie'] = cookie_header
def prepare_hooks(self, hooks):
"""Prepares the given hooks."""
except KeyError:
pass
- prepared_request.prepare_cookies(self.cookies)
+ extract_cookies_to_jar(prepared_request.cookies, prepared_request, resp.raw)
+ prepared_request.prepare_cookies(prepared_request.cookies)
resp = self.send(
prepared_request,
)
prep = self.prepare_request(req)
- # Add param cookies to session cookies
- self.cookies = merge_cookies(self.cookies, cookies)
-
proxies = proxies or {}
# Gather clues from the surrounding environment.