def parse_body_arguments(content_type, body, arguments, files):
+ """Parses a form request body.
+
+ Supports "application/x-www-form-urlencoded" and "multipart/form-data".
+ The content_type parameter should be a string and body should be
+ a byte string. The arguments and files parameters are dictionaries
+ that will be updated with the parsed contents.
+ """
if content_type.startswith("application/x-www-form-urlencoded"):
uri_arguments = parse_qs_bytes(native_str(body))
for name, values in uri_arguments.iteritems():
* `SSLIOStream.get_ssl_certificate` now has a ``binary_form`` argument
which is passed to ``SSLSocket.getpeercert``.
* `SSLIOStream.write` can now be called while the connection is in progress,
- same as non-SSL `IOStream`.
-* tornado.util.GzipDecompressor, tornado.httputil.parse_body_arguments (TODO
- are these public?)
+ same as non-SSL `IOStream` (but be careful not to send sensitive data until
+ the connection has completed and the certificate has been verified).
* `OpenIDMixin` now also returns the ``claimed_id`` field for the user.
* New method `RequestHandler.get_template_namespace` can be overridden to
add additional variables without modifying keyword arguments to
.. autoclass:: AsyncHTTPTestCase
:members:
-
+
+ .. autoclass:: AsyncHTTPSTestCase
+ :members:
+
Controlling log output
----------------------
.. automethod:: RequestHandler.set_status
.. automethod:: RequestHandler.set_header
.. automethod:: RequestHandler.add_header
+ .. automethod:: RequestHandler.clear_header
.. automethod:: RequestHandler.set_default_headers
.. automethod:: RequestHandler.write
.. automethod:: RequestHandler.flush