2

在我的 python (2.7) 应用程序中,我使用 Cloudant 数据库,如下所示:

from cloudant.client import Cloudant

client = Cloudant('XXX', 'YYY', account='ZZZ')
client.connect()
my_db = client['my_database']
for doc in my_db: print doc

此应用程序运行的环境使用了无法绕过的 proxy.pac。我怎样才能知道与 Cloudant .pac 的连接,或者我怎样才能让 Cloudant 自动查找 proxy.pac?

我找到了 python 包 PyPac ( https://pypac.readthedocs.io/en/latest/ ),但完全不知道应该如何在 Cloudant 上下文中使用它。

提前感谢您的想法和帮助。

4

1 回答 1

1

从 PyPAC 0.6.0 开始,您可以使用pac_context_for_url上下文管理器:

from pypac import pac_context_for_url


with pac_context_for_url('https://acct.cloudant.com'):
    # Do your Cloudant stuff

原答案:

这应该按预期工作:

import os

import pypac


# PyPAC will auto-discover the current PAC settings
pac = pypac.get_pac()

# Find the proxy for Cloudant (I use this domain but anything else would work too)
proxies = pac.find_proxy_for_url('https://acct.cloudant.com', 'cloudant.com')

# It will return something like: 'PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080'
# Here we take the 1st one:
proxy = 'http://{}/'.format(proxies.split()[1].rstrip(';'))

# Set proxy envars
os.environ['HTTP_PROXY'] = os.environ['HTTPS_PROXY'] = proxy

# And now try Cloudant stuff
于 2018-01-24T08:57:17.450 回答