我正在尝试向Web服务器发出POST请求以尝试创建新资源。我对Python和我试图在服务器上进行通信的平台都很陌生,所以我不确定这是不是我的python技能需要更多的练习,或者我是不是正确地提交请求服务器。这是我的代码:
import requests
apiKey = "[APIKEY]"
serverUrl = "http://192.168.0.5/api/v1.0/payments"
values = """
{
"clientId": 1,
"method": 3,
"createdDate": "2016-09-12T00:00:00+0000",
"amount": 10,
"note": "",
"invoiceIds": []
}
"""
headers = {
'X-Auth-App-Key': apiKey,
'Content-Type': 'application/json'
}
r = requests.post(serverUrl, data=values, headers=headers)
r
服务器响应Response 200(OK)消息,但由于我正在尝试创建新资源,因此它应该响应Response 201(Created)消息。我有什么想法吗?
答案 0 :(得分:1)
尝试使用if test -d /usr/local/bin
then
echo "Exists"
else
echo "Does not exist"
fi
,
更改https://
到
serverUrl = "http://192.168.0.5/api/v1.0/payments"
答案 1 :(得分:0)
这可能不会导致不同的HTTP状态代码,但您可以使用json
参数直接发送JSON编码的字典到requests.post()
。因此values
可以是字典,而requests
会设置内容类型,因此您无需在headers
中填写:
values =
{
"clientId": 1,
"method": 3,
"createdDate": "2016-09-12T00:00:00+0000",
"amount": 123.45,
"note": "",
"invoiceIds": []
}
headers = {'X-Auth-App-Key': apiKey}
r = requests.post(serverUrl, json=values, headers=headers)
它只是一点清洁。
关于预期的201响应,实际创建的资源是什么?在使用curl
等其他工具时,您是否得到201响应?