From: Matt McClure Date: Fri, 11 Jan 2013 20:04:47 +0000 (-0500) Subject: Resolves the parts of #1096 in requests proper. X-Git-Tag: v1.2.0~79^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=628e393b9a251c3d2b9910c697b9e4ac4f3d8d6a;p=services%2Fpython-requests.git Resolves the parts of #1096 in requests proper. --- diff --git a/requests/models.py b/requests/models.py index 5202e6f..b7d52cd 100644 --- a/requests/models.py +++ b/requests/models.py @@ -375,13 +375,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): else: content_type = 'application/x-www-form-urlencoded' - self.headers['Content-Length'] = '0' - if hasattr(body, 'seek') and hasattr(body, 'tell'): - body.seek(0, 2) - self.headers['Content-Length'] = str(body.tell()) - body.seek(0, 0) - elif body is not None: - self.headers['Content-Length'] = str(len(body)) + self.prepare_content_length(body) # Add content-type if it wasn't explicitly provided. if (content_type) and (not 'content-type' in self.headers): @@ -389,6 +383,15 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): self.body = body + def prepare_content_length(self, body): + self.headers['Content-Length'] = '0' + if hasattr(body, 'seek') and hasattr(body, 'tell'): + body.seek(0, 2) + self.headers['Content-Length'] = str(body.tell()) + body.seek(0, 0) + elif body is not None: + self.headers['Content-Length'] = str(len(body)) + def prepare_auth(self, auth): """Prepares the given HTTP auth data.""" if auth: @@ -402,6 +405,9 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): # Update self to reflect the auth changes. self.__dict__.update(r.__dict__) + # Recompute Content-Length + self.prepare_content_length(self.body) + def prepare_cookies(self, cookies): """Prepares the given HTTP cookie data."""