将CURL-Post转换为Python请求失败

将CURL-Post转换为Python请求失败,python,curl,server,python-requests,Python,Curl,Server,Python Requests,我无法成功地将curlpost命令转换并执行为python代码 curl命令 curl -X POST -H "Content-Type:application/json; charset=UTF-8" -d '{"name":joe, "type":22, "summary":"Test"}' http://url 转换代码 import requests import json url="http://url" data = {"name":joe, "type":22, "summa

我无法成功地将curlpost命令转换并执行为python代码

curl命令

curl -X POST -H "Content-Type:application/json; charset=UTF-8" -d '{"name":joe, "type":22, "summary":"Test"}' http://url
转换代码

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

我没有得到任何响应,当我从shell手动执行它时,它工作得很好,但是当我执行代码时,什么都没有发生,我没有看到错误或任何东西

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

response = requests.post(url, json=data, headers=headers)

注意:同样,通过这种方式,您可以省略“Content type”标题。

如果您的环境中配置了代理,也可以在会话/请求中定义它

例如,会话:

my_proxies = {  
'http': 'http://myproxy:8080',  
'https': 'https://myproxy:8080'  
}  

session = requests.Session()  
request = requests.Request('POST', 'http://my.domain.com', data=params_template, headers=req_headers, proxies=my_proxies)  
prepped = session.prepare_request(request)  
response = session.send(prepped)  
请参阅文档:
请求

会话

是的,我刚刚在问题中添加了它。在修改代码以使其运行之后,不会返回任何内容,它是空的。我成功地获得了以下URL的响应。我建议您修改示例代码,使其尽可能短,同时仍然呈现这种不希望出现的行为。另外,确保它在不需要我们做任何事情的情况下运行,(添加导入,删除joe变量)这也可以帮助您看到问题不在哪里。好的,谢谢您的建议。您能够找到问题吗?没有,因为我无法复制它。请尝试以下代码,这是最简单的post请求:import requests url=“response=requests.post(url,“hi”)print(response.text)