From 1971bdbe6726af224d92723b3f5f12f26aa4277f Mon Sep 17 00:00:00 2001 From: megane murayama Date: Thu, 12 May 2011 12:50:09 -0400 Subject: [PATCH] fix for post non-dict data --- requests/core.py | 13 ++++++------- test_requests.py | 3 +++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/requests/core.py b/requests/core.py index 40f4c8e..69d0f3f 100644 --- a/requests/core.py +++ b/requests/core.py @@ -69,18 +69,17 @@ class Request(object): self.headers = headers self.files = files self.method = method - self.data = {} - for (k, v) in data.items(): - self.data.update({ - k.encode('utf-8') if isinstance(k, unicode) else k: - v.encode('utf-8') if isinstance(v, unicode) else v - }) socket.setdefaulttimeout(timeout) - # url encode data if it's a dict if hasattr(data, 'items'): + for (k, v) in data.items(): + self.data.update({ + k.encode('utf-8') if isinstance(k, unicode) else k: + v.encode('utf-8') if isinstance(v, unicode) else v + }) + # url encode data if it's a dict self._enc_data = urllib.urlencode(self.data) else: self._enc_data = self.data diff --git a/test_requests.py b/test_requests.py index 89b69ac..ecd0177 100755 --- a/test_requests.py +++ b/test_requests.py @@ -79,6 +79,9 @@ class RequestsTestSuite(unittest.TestCase): post2 = requests.post(bin.url, files={'some': open('test_requests.py')}) self.assertEqual(post2.status_code, 201) + post3 = requests.post(bin.url, data='[{"some": "json"}]') + self.assertEqual(post.status_code, 201) + def test_POSTBIN_GET_POST_FILES_WITH_PARAMS(self): bin = requests.post('http://www.postbin.org/') -- 2.7.4