在 Python 中,我想用 HTTP 而不是 HTTPS 做休息请求,包似乎不同意

in Python, I want to do rest requests with HTTP and NOT with HTTPS, packages don't seem to agree

我试过使用请求:

url = 'http://bot'    # this is a local service
import requests

r = requests.get(url)

然后我得到

requests.exceptions.SSLError: HTTPSConnectionPool(host='bot', port=443)

我指定了 HTTP,而不是 HTTPS,但它尝试使用 SSL 连接。

所以,我尝试了 httplib2:

url = 'http://bot'    # this is a local service
response, content = http.request(url, "GET")

我得到:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)

我不知道为什么对HTTPS有一种执念,但我不想。它是开发中的本地服务 运行,它是纯 HTTP。将“:80”添加到 url 不会改变任何内容。

当使用 CURL 或 C# 访问同一服务时,通过 HTTP,没问题。

我如何告诉 python 库我想要一个纯 HTTP 连接而不是别的?

使用 requests 库并添加 ssl 验证选项。您的请求行应如下所示:

r = requests.get(url, verify = False)

尝试禁用SSL_VERIFICATION

r = requests.get(url, verify = False)