我正在寻找访问受PKI保护的网站的解决方案,并发现以下link确实有一个可行的解决方案来满足我的需求。但是,我不想在不了解其中的内容的情况下使用其他人的工作。我查看了urllib2和httplib pydocs,但没有提到它是如何使用的?
在示例代码提供的链接中,我知道self
中的https_open(self, req)
等同于urllib2.HTTPSHandler.https_open(req)
,但这不是它的实现方式。在示例中,req
是否等同于opener.open()
中的值,以便在调用.open()
时,()
中的值为req
值,然后传递对.build_opener()
函数中的每个处理程序?
这意味着调用https_open()
时不会调用.build_opener()
,并且只会在处理程序中初始化cert
和key
值。
修改
看起来urllib2.build_opener(handlers)
会返回OpenerDirector
个对象,该对象的.open()
方法会显示request
网址,该网址对应于req.has_data()
方法https_open(req)
看着。
但https_open(req)
从哪里调用是问题?!