From 8d8865aadb9c76863820c87431229d20e5c23a70 Mon Sep 17 00:00:00 2001 From: Johnny Goodnow Date: Fri, 25 Jan 2013 20:50:58 -0800 Subject: [PATCH] Remove Content-Length from GET/HEAD by default. Now, Content-Length is only auto-added for non-GET/HEAD requests. --- requests/models.py | 2 +- test_requests.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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): -- 2.7.4