Accept POST request with empty body
This commit is contained in:
@@ -291,8 +291,9 @@ class Request():
|
||||
|
||||
def _parse_urlencoded(self, urlencoded):
|
||||
data = MultiDict()
|
||||
for k, v in [pair.split('=', 1) for pair in urlencoded.split('&')]:
|
||||
data[urldecode(k)] = urldecode(v)
|
||||
if urlencoded:
|
||||
for k, v in [pair.split('=', 1) for pair in urlencoded.split('&')]:
|
||||
data[urldecode(k)] = urldecode(v)
|
||||
return data
|
||||
|
||||
@property
|
||||
|
||||
@@ -73,6 +73,14 @@ class TestRequest(unittest.TestCase):
|
||||
{'foo': 'bar', 'abc': 'def', 'x': '/%%'}))
|
||||
self.assertTrue(req.form is form)
|
||||
|
||||
fd = get_request_fd('GET', '/foo', headers={
|
||||
'Content-Type': 'application/x-www-form-urlencoded'},
|
||||
body='')
|
||||
req = Request.create('app', fd, 'addr')
|
||||
form = req.form
|
||||
self.assertEqual(form, MultiDict({}))
|
||||
self.assertTrue(req.form is form)
|
||||
|
||||
fd = get_request_fd('GET', '/foo', headers={
|
||||
'Content-Type': 'application/json'},
|
||||
body='foo=bar&abc=def&x=%2f%%')
|
||||
|
||||
Reference in New Issue
Block a user