您现在的位置是:网站首页>文章详情文章详情
tornado接受post参数问题
inlike2019-09-04【 原创文章 】 浏览(2084) 评论(0) 喜欢(31)
简介tornado接受post参数问题,tornado接收参数分为表单数据和json字符串,没有统一获取post数据的接口,因此可能报错,自定义通用的tornado post数据处理接口
解析tornado查询参数:
self.request.query_arguments
self.get_query_argument[s](参数名称)
解析tornado的post参数:
self.request.body_arguments
self.get_body_argument[s](参数名称)
get,post解析参数都可:
self.get_argument[s](参数名称)
原始的post参数:
post_data = self.request.body.decode('utf-8')
headers参数:self.request.headers,对象(字典对象)
在项目中解析post参数时,发现以下问题:
request.body_arguments可以获取到form数据,但不能获取到curl过来的json数据
request.body.decode('utf-8')可以获取到所有的数据,但是是原始数据。
如果原始数据是curl过来json数据:直接json.loads(***)即可。
如果原始数据是form数据:直接json.loads(*)将抛出异常,因为数据格式是: username=abc%E5%8C%97%E4%BA%AC&email=&website=abc&language=%E4%B8%AD%E5%9B%BD
解决方法:
post_data = self.request.body_arguments
post_data = {x: post_data.get(x)[0].decode("utf-8") for x in post_data.keys()}
if not post_data:
post_data = self.request.body.decode('utf-8')
post_data = json.loads(post_data)
上一篇:安卓虚拟机及基础逆向的核心
下一篇:关于意外保险的报销流程和注意事项
相关文章
本栏推荐
标签云
猜你喜欢
站点信息
- 建站时间:2019-5-24
- 网站程序:like in love
- 主题模板:《今夕何夕》
- 文章统计:104条
- 文章评论:***条
- 微信公众号:扫描二维码,关注我们