Python Django中未读取Curl Post Json数据
我在windows中使用curl exe与Django后端通信 下面是我使用的命令Python Django中未读取Curl Post Json数据,python,json,curl,Python,Json,Curl,我在windows中使用curl exe与Django后端通信 下面是我使用的命令 curl --dump-header - -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data "{\"uid\":12,\"token\":\"asdert\"}" http://localhost:8000/restapi/v1/foo/ 现在,这将以错误的格式提供数据。i、 e.在视图中,帖子显示了
curl --dump-header - -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data "{\"uid\":12,\"token\":\"asdert\"}" http://localhost:8000/restapi/v1/foo/
现在,这将以错误的格式提供数据。i、 e.在视图中,帖子显示了这些数据
打印请求.POST
{"{\"uid\":12,\"access_token\":\"asdert\"}": [""]}
{u'{"uid": "100"}': [u'']}
发布json数据的正确方法是什么
编辑:
我试过其他几种方法,例如。
我正在尝试使用RESTAPI与我的RESTAPI进行通信
即使在这里,我也得到了与上面相同的结果
import slumber
api = slumber.API("http://localhost/restapi/v1/"
api.foo.post({"uid":"100"})
观点摘录
打印请求.POST
{"{\"uid\":12,\"access_token\":\"asdert\"}": [""]}
{u'{"uid": "100"}': [u'']}
附加说明--curl--转储头--H“接受:应用程序/json”-H“内容类型:应用程序/json”-X发布--数据“uid=12&token=asdert”http://localhost:8000/restapi/v1/foo/
这很有效。但这不是Json格式 我试过你的命令,效果很好
现在,您的问题是应该从访问传入的JSON数据
request.raw_post_data
而不是request.POST
(或者,如果您使用的是Django 1.4+,请使用request.body
代替request.raw\u post\u data
不推荐使用)
详细代码应如下所示:
import json
if request.method == "POST":
data = json.loads(request.raw_post_data)
print data
否如果您在视图中打印request.POST,它会给出一个dictionary,key作为上面的数据,a为空值。它给出的错误是对象不是Json。i、 e.无法创建任何Json对象decoded@AkashDeshpande您可以尝试打印请求。原始发布数据吗?{uid:1234,access_token:aaa}@AkashDeshpande有趣的是,如果您只使用
curl--dump header--H“Accept:application/json”-H“Content Type:application/json”-X post--data'{uid:12,“token”:“asdert”}' http://localhost:8000/restapi/v1/foo/
相反,没有windows特定的hack?与上面的“{uid:100,access\u token:AAA}”相同,我通过curl--dump header--H“Accept:application/json”-H“Content Type:application/json”-X POST--data“{uid:100,“access\u token”:“AAA”}”使用了这个命令