在Python中,我想使用HTTP而不是HTTPS进行其余请求,包似乎不同意

Tho*_*mas 1 python httplib2 python-requests

我尝试过使用请求:

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

r = requests.get(url)
Run Code Online (Sandbox Code Playgroud)

我得到

requests.exceptions.SSLError:HTTPSConnectionPool(主机='bot',端口=443)

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

所以,我尝试了httplib2:

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

我得到:

ssl.SSLCertVerificationError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书(_ssl.c:1076)

我不知道为什么有人对 HTTPS 如此痴迷,但我不想要它。它是一个正在开发中运行的本地服务,并且是纯 HTTP。在 url 中添加“:80”不会改变任何内容。

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

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

小智 5

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

r = requests.get(url, verify = False)
Run Code Online (Sandbox Code Playgroud)