将 CURL Post 转换为 Python 请求失败

Le *_*Ray 5 python curl python-requests server

我无法成功将curl post 命令转换并执行为python 代码。

卷曲命令

curl -X POST -H "Content-Type:application/json; charset=UTF-8" -d '{"name":joe, "type":22, "summary":"Test"}' http://url
Run Code Online (Sandbox Code Playgroud)

转换后的代码

import requests
import json 

url="http://url"
data = {"name":joe, "type":22, "summary":"Test"}
headers = {'Content-type': "application/json; charset=utf8"}
response  = requests.post (url, data=json.dumps(data), headers=headers)
print response.text
print response.headers
Run Code Online (Sandbox Code Playgroud)

我没有得到任何回应,当我从 shell 手动执行它时,它工作正常,但是当我执行代码时,没有任何反应,我没有看到错误或任何东西。

sus*_*lrd 1

如果您使用的是最新版本的 requests 之一:尝试使用“json”kwarg(无需显式转换为 json)而不是“data”kwarg:

response = requests.post(url, json=data, headers=headers)
Run Code Online (Sandbox Code Playgroud)

注意:此外,这样您可以省略“Content-type”标头。