当我在本地运行curl时,一切都按预期工作:
curl -XPOST http://myserver:8080/api/ -d '{"id":"1","message":"TEST","from":1008003880,"to":1008003881}'
我用以下方式编写python代码:
// some code
import requests
// some code
data_input={"from":t_before, "to": t, "message": "TEST-2", "id": "1"}
print data_input
r = requests.post(url="http://myserver:8080/api/", data=data_input)
print(r.status_code, r.reason)
它提供以下输出:
{'to': 1008003881, 'message': 'TEST-2', 'from': 1008003880, 'id': 1}
(400, 'Bad Request')
可能是什么原因?是python以某种方式改变请求吗?
答案 0 :(得分:1)
您使用的是哪种版本的请求?可能是你需要对你的数据进行json编码。
使用json.dumps()对数据进行编码:
import requests
import json
data_input={"from":t, "to": t, "message": "TEST-2", "id": "1"}
print data_input
r = requests.post(url="http://myserver:8080/api/", data=json.dumps(data_input))
print(r.status_code, r.reason)