Python Django中未读取Curl Post Json数据

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.在视图中,帖子显示了

我在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.在视图中,帖子显示了这些数据 打印请求.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”}”使用了这个命令