From: Kenneth Reitz Date: Thu, 10 Nov 2011 00:24:48 +0000 (-0800) Subject: header and cookie fixes for redirects X-Git-Tag: v0.8.0~66 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=52a95cb93ab8b6c2c32398bd440fd9434232a13a;p=services%2Fpython-requests.git header and cookie fixes for redirects --- diff --git a/requests/models.py b/requests/models.py index 1c4d575..734e0b8 100644 --- a/requests/models.py +++ b/requests/models.py @@ -184,6 +184,8 @@ class Request(object): history = [] r = build(resp) + cookies = self.cookies + self.cookies.update(r.cookies) if r.status_code in REDIRECT_STATI and not self.redirect: @@ -215,26 +217,40 @@ class Request(object): else: method = self.method + # Remove the cookie headers that were sent. + headers = self.headers + try: + del headers['Cookie'] + except KeyError: + pass + request = Request( url=url, - headers=self.headers, + headers=headers, files=self.files, method=method, - # data=self.data, # params=self.params, auth=self._auth, - cookies=self.cookies, + cookies=cookies, redirect=True, config=self.config, _poolmanager=self._poolmanager ) + request.send() + cookies.update(request.response.cookies) r = request.response + self.cookies.update(r.cookies) r.history = history self.response = r self.response.request = self + # print locals() + self.response.cookies.update(self.cookies) + # print cookies + # print self.response.cookies + # print '!!!' @staticmethod @@ -348,16 +364,17 @@ class Request(object): if self.auth: auth_func, auth_args = self.auth + # Allow auth to make its changes. r = auth_func(self, *auth_args) + # Update self to reflect the auth changes. self.__dict__.update(r.__dict__) - + # Check to see if keep_alive is allowed. if self.config.get('keep_alive'): conn = self._poolmanager.connection_from_url(url) else: conn = connectionpool.connection_from_url(url) - print 'NO CONNECTION FOR YOU1' if not self.sent or anyway: