Python json POST请求状态200,同时期望状态201

时间:2017-03-31 11:40:29

标签: python json http post

我正在尝试向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)消息。我有什么想法吗?

2 个答案:

答案 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响应?