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):
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:
# 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."""