From: Justin Samuel Date: Mon, 19 Mar 2012 22:09:23 +0000 (-0700) Subject: Fix keys in wsgi request arguments being bytes in python3 when content-type is applic... X-Git-Tag: v2.3.0~66^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c6dc7c3afc032ed28270cb8a710eb6f899ccd6b;p=thirdparty%2Ftornado.git Fix keys in wsgi request arguments being bytes in python3 when content-type is application/x-www-form-urlencoded. --- diff --git a/tornado/wsgi.py b/tornado/wsgi.py index 7e793e9c2..b756f7022 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: