From 1c6dc7c3afc032ed28270cb8a710eb6f899ccd6b Mon Sep 17 00:00:00 2001 From: Justin Samuel Date: Mon, 19 Mar 2012 15:09:23 -0700 Subject: [PATCH] Fix keys in wsgi request arguments being bytes in python3 when content-type is application/x-www-form-urlencoded. --- tornado/wsgi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tornado/wsgi.py b/tornado/wsgi.py index 7e793e9c..b756f702 100644 --- a/tornado/wsgi.py +++ b/tornado/wsgi.py @@ -43,7 +43,7 @@ import urllib from tornado import escape from tornado import httputil from tornado import web -from tornado.escape import native_str, utf8 +from tornado.escape import native_str, utf8, parse_qs_bytes from tornado.util import b try: @@ -146,7 +146,7 @@ class HTTPRequest(object): self.files = {} content_type = self.headers.get("Content-Type", "") if content_type.startswith("application/x-www-form-urlencoded"): - for name, values in cgi.parse_qs(self.body).iteritems(): + for name, values in parse_qs_bytes(native_str(self.body)).iteritems(): self.arguments.setdefault(name, []).extend(values) elif content_type.startswith("multipart/form-data"): if 'boundary=' in content_type: