我正在尝试向shopify商店提出GET请求,如下所示:
endpoint = "http://www.packershoes.com"
print session.get(endpoint, headers=headers)
当我向网站运行get请求时,我收到以下错误:
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 467, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 455, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 558, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 385, in send
raise SSLError(e)
requests.exceptions.SSLError: hostname 'packershoes.com' doesn't match either of '*.myshopify.com', 'myshopify.com'
当我申请其他网站时,它可以正常工作。
答案 0 :(得分:2)
这看起来更像是SSL问题而不是Python问题。您还没有向我们展示您的代码,因此我在此进行了一些猜测,但看起来您所连接的网站正在提供的SSL证书与您的主机名不匹配&# 39;重新使用。这里的解决方案通常是:
讨论in the requests documentation。
<强>更新强>
仔细看看你的问题,我注意到我自己无法重现这个问题。 www.packershoes.com
提供的证书显然适用于*.myshopify.com
,但我不会因为该地址实际上是packer-shoes.myshopify.com
$ host www.packershoes.com
www.packershoes.com is an alias for packer-shoes.myshopify.com.
packer-shoes.myshopify.com is an alias for shops.myshopify.com.
shops.myshopify.com has address 23.227.38.64
我想知道您的问题是否与您正在使用的requests
版本或本地DNS配置中的某些版本无关。如果您将请求中的www.packershoes.com
替换为packer-shoes.myshopify.com
,它是否正常运行?
答案 1 :(得分:0)
请求验证HTTPS证书的SSL证书,就像Web浏览器一样。默认情况下,启用SSL验证,如果验证无法验证证书,请求将抛出SSLError
,您将验证设置为False:
session.get("http://www.packershoes.com", headers=headers, verify=False)