Merge pull request #29 from meganemura/requests

---

raised Attribute Error when post str data something like json because of not having items attribute.
move encoding data to utf-8 inside hasattr(data, items)
This commit is contained in:
Kenneth Reitz
2011-05-12 13:36:45 -04:00
2 changed files with 9 additions and 7 deletions
+6 -7
View File
@@ -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
+3
View File
@@ -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/')