我试图在Visual Studio中使用Django REST Framework在Django 1.8中构建一个非常简单的REST API,我希望在其中使用一种服务方法来处理JSON,但我似乎无法理解发帖子:
我试图通过Postman发送这个简单的JSON,就像测试一样:
{
"foo":"bar"
}
带标题的:
Content-Type: application/json
这是我的方法:
@csrf_exempt
@api_view(['POST'])
def test(request):
data = request.data
return HttpResponse(status=200)
但我的问题是request.data是空的。如果相反,我尝试访问request.body,我得到
从请求的数据流中读取后,您无法访问正文。
任何想法可能是什么问题?
答案 0 :(得分:2)
稍微考虑一下,在调试模式下,Visual Studio似乎是一个问题。如果我在调试之前尝试访问请求,然后调用它上面的任何Python函数(例如一个简单的打印,或传入一个函数来解析它),它会显示为一个空的QueryDict,否则它显示正常。
答案 1 :(得分:1)
答案 2 :(得分:1)
这可能有助于Where's my JSON data in my incoming Django request?
除此之外,请确保正确设置了content-type和accept-type。 Postman的原始回应是什么?安全设置是否正确?
答案 3 :(得分:0)
使用POSTMAN时遇到同样的问题。
Solved and Credit转到https://stackoverflow.com/a/31977373/764592
引用答案:
请求有效内容未转换为JSON格式。
我在Body中传递我的数据 x-www-form-urlencoded
您可以在请求标头中使用 Content-Type 作为 application / x-www-form-urlencoded 进行修复。