def data_factory(app, handler):
async def parse_data(request):
if request.method == 'POST':
if not request.content_type:
return web.HTTPBadRequest(text='Missing Content-type.')
content_type = request.content_type.lower()
if content_type.startswith('application/json'):
request.__data__ = await request.json()
if not isinstance(request.__data__, dict):
return web.HTTPBadRequest(text='JSON body must be object.')
logging.info('request json: %s' % str(request.__data__))
elif request.content_type.startswith('application/x-www-form-urlencoded'):
params = await request.post()
request.__data__ = dict(**params)
logging.info('request form: %s' % str(request.__data__))
else:
return web.HTTPBadRequest(text='Unsupported Content_Type: %s' % content_type)
elif request.method == 'GET':
qs = request.query_string
request.__data__ = {k: v[0] for k, v in parse.parse_qs(qs, True).items()}
logging.info('request query: %s' % request.__data__)
else:
request.__data__ = dict()
return (await handler(request))
return parse_data
# ??????????????????Response??
评论列表
文章目录