From: Johnny Goodnow Date: Sat, 26 Jan 2013 04:50:58 +0000 (-0800) Subject: Remove Content-Length from GET/HEAD by default. X-Git-Tag: v1.2.0~67^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d8865aadb9c76863820c87431229d20e5c23a70;p=services%2Fpython-requests.git Remove Content-Length from GET/HEAD by default. Now, Content-Length is only auto-added for non-GET/HEAD requests. --- diff --git a/requests/models.py b/requests/models.py index 691f049..4235141 100644 --- a/requests/models.py +++ b/requests/models.py @@ -392,7 +392,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): body.seek(0, 0) elif body is not None: self.headers['Content-Length'] = str(len(body)) - elif self.method in ('POST', 'PUT', 'PATCH'): + elif self.method not in ('GET', 'HEAD'): self.headers['Content-Length'] = '0' def prepare_auth(self, auth): diff --git a/test_requests.py b/test_requests.py index 99e245f..312c955 100644 --- a/test_requests.py +++ b/test_requests.py @@ -59,8 +59,10 @@ class RequestsTestCase(unittest.TestCase): def test_no_content_length(self): - req = requests.Request('GET', httpbin('get')).prepare() - self.assertTrue('Content-Length' not in req.headers) + get_req = requests.Request('GET', httpbin('get')).prepare() + self.assertTrue('Content-Length' not in get_req.headers) + head_req = requests.Request('HEAD', httpbin('head')).prepare() + self.assertTrue('Content-Length' not in head_req.headers) def test_path_is_not_double_encoded(self):