我正在尝试开发REST-ful API,IoT设备将数据上传到服务器。我在开发过程中使用python程序来模拟urllib
。
有时程序成功上传,但其他时候返回带有以下Django错误信息的HTTP 500
。
TypeError at /logdata/
get() missing 1 required positional argument: 'header'
Request Method: POST
Django Version: 2.0.3
...
Exception Location: /usr/local/lib/python3.5/dist-packages/django/middleware/clickjacking.py in process_response, line 26
Python Executable: /usr/local/bin/uwsgi
Python Version: 3.5.3
我找到了一个处理HTML表单的similar SO question,但是我只是使用URL编码的数据执行原始POST请求,因此不需要HttpResponseRedirect吗?我只会在发送无效数据时返回HttpResponseBadRequest
,而在请求有效时返回application/json
数据。
这是我的Django视图的简化版本:
def publish_data(request):
params = request.POST
if validate(params):
... # do stuff with params
return HTTPResponse(my_data, content_type="application/json")
else:
return HttpResponseBadRequest('Invalid Data')
异常位置似乎与设置X-Frame-Options: SAMEORIGIN
有关,我尝试在Django视图中手动进行设置,但是仍然出现HTTP 500错误。我可以检查一些常见陷阱的想法吗?