From 06d9faedc662a3705af0349e12ea27e2b4bbf640 Mon Sep 17 00:00:00 2001 From: Andre Graf Date: Wed, 29 Aug 2012 21:20:11 +0200 Subject: [PATCH] data encoding must be done after calling an auth provider which might change the data (as auth.OAuth1 does) --- requests/models.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/requests/models.py b/requests/models.py index 29c06c6..66c5093 100644 --- a/requests/models.py +++ b/requests/models.py @@ -499,6 +499,21 @@ class Request(object): datetime.now().isoformat(), self.method, url )) + # Use .netrc auth if none was provided. + if not self.auth and self.config.get('trust_env'): + self.auth = get_netrc_auth(url) + + if self.auth: + if isinstance(self.auth, tuple) and len(self.auth) == 2: + # special-case basic HTTP auth + self.auth = HTTPBasicAuth(*self.auth) + + # Allow auth to make its changes. + r = self.auth(self) + + # Update self to reflect the auth changes. + self.__dict__.update(r.__dict__) + # Nottin' on you. body = None content_type = None @@ -519,21 +534,6 @@ class Request(object): if (content_type) and (not 'content-type' in self.headers): self.headers['Content-Type'] = content_type - # Use .netrc auth if none was provided. - if not self.auth and self.config.get('trust_env'): - self.auth = get_netrc_auth(url) - - if self.auth: - if isinstance(self.auth, tuple) and len(self.auth) == 2: - # special-case basic HTTP auth - self.auth = HTTPBasicAuth(*self.auth) - - # Allow auth to make its changes. - r = self.auth(self) - - # Update self to reflect the auth changes. - self.__dict__.update(r.__dict__) - _p = urlparse(url) no_proxy = filter(lambda x: x.strip(), self.proxies.get('no', '').split(',')) proxy = self.proxies.get(_p.scheme) -- 2.7.4