Remove default Content-Length from GET requests.

Fix #1051.
This commit is contained in:
Johnny Goodnow
2013-01-24 21:10:12 -08:00
parent 22623bd8c2
commit 44b1e7ebea
2 changed files with 7 additions and 1 deletions
+2 -1
View File
@@ -386,13 +386,14 @@ 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))
elif self.method in ('POST', 'PUT'):
self.headers['Content-Length'] = '0'
def prepare_auth(self, auth):
"""Prepares the given HTTP auth data."""
+5
View File
@@ -58,6 +58,11 @@ class RequestsTestCase(unittest.TestCase):
assert pr.body == 'life=42'
def test_no_content_length(self):
req = requests.Request('GET', httpbin('get')).prepare()
self.assertNotIn('Content-Length', req.headers)
def test_path_is_not_double_encoded(self):
request = requests.Request('GET', "http://0.0.0.0/get/test case").prepare()