通过请求的Python / XPOST在curl运行良好时不起作用

时间:2018-02-07 21:48:05

标签: python curl

当我在本地运行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以某种方式改变请求吗?

1 个答案:

答案 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)