我有嵌入 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 支持已被删除。顺便说一句:我可以编写自己的库并将它们放置到正确的文件夹中以使它们工作。所以,问题是:如何使用代理连接到网络服务?我找到了以下示例: http ://www.pha.com.au/kb/index.php/Python_-_Using_a_proxy_for_HTTP_requests
但在我的情况下它不起作用。你有什么建议可以解决这个问题吗?看起来在python中构建一个单独的代理模块来执行HTTPS查询可以解决这个问题。那么,在这种情况下,连接程序是什么?