Source code for clink.handler.req_url_encode

from urllib.parse import parse_qsl

from clink.error.http import Http400Error
from clink.iface import ILv3Handler
from clink.mime import MIME_URLENCODE
from clink.com import stamp


@stamp()
[docs]class ReqUrlEncodeHandler(ILv3Handler): ''' Map URL Encode string to Python object '''
[docs] def handle(self, req, res): if req.content_type != MIME_URLENCODE: return if req.body is None: return try: values = dict(parse_qsl(req.body.decode('utf-8'))) if req.body is not None and len(values) == 0: raise Http400Error(req, 'body is invaild url encode') req.body = values except ValueError: raise Http400Error(req)