我有'企业内部工具',其中嵌入了python 2.5.2。这意味着我无法使用任何其他版本或编程语言。 因此,HTTPLIB的代码如下:
connection = httplib.HTTPSConnection('IP:PORT')
body_content = '<INPUT><Var1>DATA</Var1></INPUT>/r/n'
headers = {Authorization':'Basic XXXXXXXXXXXX','Accept':'text/xml','Content-Length':'XX','Host':'host name','Accept-Encoding':'gzip,deflate'}
connection.request('PUT', '/path/method',body_content, headers)
result = connection.getresponse()
对于urllib2代码如下:
body_content = '<INPUT><Var1>DATA</Var1></INPUT>\r\n'
opener = urllib2.build_opener(urllib2.HTTPSHandler)
request = urllib2.Request('https://IP:PORT/path/method', data=body_content)
request.headers={'Content-length': 'XX', 'Host': 'host', 'Accept': 'text/xml', 'Authorization': 'Basic XXXXXXXXXXXXX', 'Accept-encoding': 'gzip,deflate'}
request.get_method = lambda: 'PUT'
url = opener.open(request)
它们都在默认的python 2.5.2安装中正常工作。 如果我尝试在工具中使用相同的代码,则会出现以下错误:
httplib的:
'module' object has no attribute 'ssl'
的urllib2:
urlopen error unknown url type: https
据我所知,SSL支持已被删除。顺便说一下:我可以编写自己的库并将它们放到正确的文件夹中使它们工作。 所以,问题是: 如何使用代理连接到Web服务? 我找到了以下示例: http://www.pha.com.au/kb/index.php/Python_-_Using_a_proxy_for_HTTP_requests
但它不适用于我的情况。你有什么建议可以解决这个问题吗? 看起来构建一个单独的代理模块来在python中执行HTTPS查询可以解决这个问题。那么,在这种情况下,连接程序可以是什么?
答案 0 :(得分:0)
在这种情况下,我建议使用优秀的库请求作为参考源:http://docs.python-requests.org/en/latest/user/advanced/#proxies
他们处理各种HTTP问题。