我正在尝试向一个非常简单的django服务器发送一个简单的帖子请求,并且无法解决为什么帖子数据没有出现在请求帖子字典中,而是出现在请求体中.
客户代码:
payload = {'test':'test'}
headers = {'Content-type': 'application/json','Accept': 'text/plain'}
url = "localhost:8000"
print json.dumps(payload)
r = requests.post(url,data=json.dumps(payload),headers=headers)
Run Code Online (Sandbox Code Playgroud)
服务器代码:
def submit_test(request):
if request.method == 'POST':
print 'Post: "%s"' % request.POST
print 'Body: "%s"' % request.body
return HttpResponse('')
Run Code Online (Sandbox Code Playgroud)
在服务器上打印的内容是:
Post: "<QueryDict: {}>"
Body: "{"test": "test"}"
Run Code Online (Sandbox Code Playgroud)
我玩过标题并将数据作为直字典发送,似乎没有任何效果.
有任何想法吗?谢谢!!
的POST字典只包含在请求中的主体发送的形式编码的数据.该body属性包含请求的原始主体作为字符串.由于您发送的是json编码的数据,因此它只显示在raw body属性中而不是POST.
查看文档中的更多信息.
尝试使用表单编码数据,您还应该看到POSTdict中的值:
payload = {'test':'test'}
url = "localhost:8000"
requests.post(url, data=payload)
Run Code Online (Sandbox Code Playgroud)