我正在尝试使用请求库向https://app.getswift.co/api/public/v2/deliveries发出发布请求,但出现以下错误
HTTPSConnectionPool(host='app.getswift.co', port=443): Max retries exceeded with url: /api/public/v2/deliveries (Caused by SSLError(CertificateError("hostname 'app.getswift.co' doesn't match either of '*.my_domain.ai', 'another.my_domain.ai'),))
这是我发出的请求。
headers = {
'Content-Type': 'application/json',
}
data = {
"apiKey": "my-api-key",
"booking": {
"pickupDetail": {
"name": "Rupert 1",
"phone": "1234567890",
"address": "112 luscombe st, brunswick, melbourne"
},
"dropoffDetail": {
"name": "Igor 2",
"phone": "0987654321",
"address": "105 collins st, 3000"
}
}
}
requests.post("https://app.getswift.co/api/public/v2/deliveries", headers=headers, json=data)
我在本地python shell上测试了相同的代码,甚至发出了邮递员请求,效果都很好。当我尝试将相同的代码推送到ec2服务器并进行发布请求调用时,就会出现问题。
我尝试使用verify = False来查看它是否有效(即使我知道安全后果),但我可以看到,相同的发布请求正在被退回给我的服务器,就像接收该请求一样。这是我在ec2日志中看到的内容
Not Found: /api/public/v2/deliveries
HTTP POST /api/public/v2/deliveries 404 [0.01, 127.0.0.1:57840]
https://app.getswift.co:443 "POST /api/public/v2/deliveries HTTP/1.1" 404 None
我将不胜感激。
抛出的错误是由无效证书引起的证书错误。(Caused by SSLError(CertificateError(
如果您信任主机名,请使用以下命令禁用验证:
requests.post("https://app.getswift.co/api/public/v2/deliveries", json=data, headers=headers, verify=False)