【已解决】如何在Controller中获取application/json的body数据?
-
''' http.request.httprequest.data ''' 试试这个
-
-
Controller写法还是有问题,因为请求的机制不同,请求的数据是一个json而且不再url后面,也不在post的data里面,二十直接封装在请求的body体里面,故此,需要拿到请求体,这里也是@guwenfengvip163-com的回帖给了我启发,谢谢!我把controller做了以下改进|:
@http.route('/test', auth='none', type='json', csrf=False)
def test(self, request, **kw)
params = request.jsonrequest
_logger.info(params)
return {'code': 200}
修改是:
首先在参数里面加上了request,再就是通过request.jsonrequest拿到请求体,其实拿到的请求体,就是访问的json数据。
说点废话:kw里面是空的,取不到任何值,有兴趣的可以研究研究,如果kw里面有值,是怎么传进去的,又是何种请求方式。
最后,谢谢大家的帮助! -
请求端的json数据构造为下面的格式,试试:
jsondata = '{"params": YourdataDictHere}'
-
@digitalsatori 其实请求端我控制不了,是电信平台的,我只是在他们平台设置了一个回调地址,然后我这边用controller实现。然后按电信平台的要求写的,请求方式是https,post,类型是application/json,不过已经都解决啦,谢谢