我正在尝试使用curl:
使用put请求向本地服务器发出put请求curl -X PUT -H "Content-Type: application/json" -d '{"connid":"12"}' "127.0.0.1:8000/api/kill"
我收到同样的答复:
'WSGIRequest'对象没有属性'PUT'
代码如下:
def kill(req):
conid = req.PUT['connid']
statusres = {}
if conid in state:
error[conid] = 'true'
statusres['status'] = 'ok'
else:
statusres['status'] = 'invalid connection Id : '+ conid
return JsonResponse(statusres)
我还在函数前使用了@csrf_exempt
。
答案 0 :(得分:0)
你在这里误解了几件事。
当您发送表格编码数据时,无论是POST还是PUT,在Django中,您始终可以在request.POST
中找到参数。因此,您可以在request.POST['conid']
。
但是,您不发送表单编码数据;你正在发送JSON。您需要访问请求正文,并将其传递给json.loads
函数进行解码:
def kill(request):
data = json.loads(request.body)
conid = data['connid']