我公司的网络位于代理服务器后面,由.pac文件提供。我已经在终端和Wi-Fi设置中设置了代理设置(例如,如果我进行scutils --proxy
,则会得到ProxyAutoConfigEnable : 1 ProxyAutoConfigURLString : http://corp_url/pac.pac
)。
但是,这些设置对于Jupyter来说是不够的-当我尝试对Internet上的公共API进行APi调用时,我得到Failed to send request: HTTPSConnectionPool(host='api.twitter.com', port=443): Max retries exceeded with url: /1.1/search/tweets.json?...etc... (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response',)))
我一直在Google和SO上寻找解决方案,发现我应该这样做
import sys,os,os.path
os.environ['http_proxy']="http://corp_url/pac.pac"
os.environ['https_proxy']="http://corp_url/pac.pac"
但是,这没有帮助。为了能够从公司代理后面的Jupyter笔记本中调用此API,我需要做什么?
更新
我现在也尝试使用PyPac,但没有任何变化:
from pypac import PACSession, get_pac
pac = get_pac(url='http://corp_url/pac.pac')
session = PACSession(pac)
我遇到了另一个错误:
Failed to send request: HTTPSConnectionPool(host='api.twitter.com', port=443): Max retries exceeded with url: /1.1/search/tweets.json?...etc... (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 501 Method Not Implemented',)))