From: megane murayama Date: Thu, 12 May 2011 16:50:09 +0000 (-0400) Subject: fix for post non-dict data X-Git-Tag: v0.3.4^2~7^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1971bdbe6726af224d92723b3f5f12f26aa4277f;p=services%2Fpython-requests.git fix for post non-dict data --- 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/')