Store the request cookiejar in PreparedRequest.cookies fix #1728

Conflicts:
	requests/sessions.py
This commit is contained in:
Chase Sterling
2013-11-06 21:52:21 -05:00
committed by Ian Cordasco
parent 5b30e960eb
commit 8bfe0d873f
3 changed files with 14 additions and 11 deletions
+3 -1
View File
@@ -16,6 +16,7 @@ import logging
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__)
@@ -169,7 +170,8 @@ class HTTPDigestAuth(AuthBase):
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)
+9 -6
View File
@@ -270,6 +270,9 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
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.
@@ -299,6 +302,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
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
@@ -474,14 +478,13 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
"""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."""
+2 -4
View File
@@ -153,7 +153,8 @@ class SessionRedirectMixin(object):
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,
@@ -345,9 +346,6 @@ class Session(SessionRedirectMixin):
)
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.