在向服务器请求时,我想忽略带有内部公司链接的certification validation。
对于python requests库,我会这样做:
r = requests.get(link, allow_redirects=False,verify=False)如何对urllib2库做同样的操作?
发布于 2013-10-09 10:14:34
默认情况下,urllib2不验证服务器证书。检查这个文档。
编辑:正如在下面的评论中所指出的,对于新版本(似乎类似于>= 2.7.9),这种情况已经不再适用了。请参阅下面的回答
发布于 2015-01-20 14:49:15
同时,urllib2似乎在默认情况下验证服务器证书。2.7.9的警告,这是在过去显示的 消失了和我目前在一个带有自签名证书(和Python2.7.9)的测试环境中遇到了这个问题。
我的邪恶解决方案(不要在生产中这样做!):
import urllib2
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
urllib2.urlopen("https://your-test-server.local", context=ctx)根据医生直接调用SSLContext构造函数也应该有效。我还没试过。
发布于 2017-02-17 16:24:34
最简单的方法:
python 2
import urllib2, ssl
request = urllib2.Request('https://somedomain.co/')
response = urllib2.urlopen(request, context=ssl._create_unverified_context())python 3
from urllib.request import urlopen
import ssl
response = urlopen('https://somedomain.co', context=ssl._create_unverified_context())https://stackoverflow.com/questions/19268548
复制相似问题