【发布时间】:2016-03-09 15:27:04
【问题描述】:
我花了很多时间试图从我的 django 1.8 应用程序中的 POST 请求中获取数据,但无论我做什么它都不起作用。希望有更熟练的人提出解决方案。
我需要从请求中获取数据:
curl.exe -X POST --data "Status=OK" http://localhost:8000/postback
urls.py的相关内容:
url(r'^postback', 'app.views.process_postback'),
views.py的相关内容:
@csrf_exempt
def process_postback(request):
if request.method == 'POST':
dict = request.POST
print(dict)
return HttpResponse("OK")
我总是在 dict 中得到空值: 我的问题是如何从帖子中获取状态到我的应用程序内部
这里有更多细节:
- 我处理来自第三方网站的回发,所以我无法更改 POST 请求的内容
- 我不需要(想要)请求的任何表单/模型,我只需要收集 Status 的值。
感谢您的帮助。
【问题讨论】:
-
代替dict = request.POST,可以试试status = request.POST.get('status')
-
print(request.body)显示什么? -
感谢您的帮助。我尝试了 status = request.POST.get('status'),在该行执行状态等于 None 之后。
-
我也尝试了 print(request.body) 并得到了异常: File "C:\work\django\postback\postback\env\lib\site-packages\django\http\reque st.py ", line 231, in body raise RawPostDataException("You cannot access body after reading from request's data stream") django.http.request.RawPostDataException: You cannot access body after reading from request's data stream
标签: django