Traceback (most recent call last):
File "Untitled 3.py", line 3, in <module>
resp = requests.get('https://httpbin.org/ip', proxies=proxies)
File "/Library/Python/2.7/site-packages/requests-2.18.4-py2.7.egg/requests/api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.18.4-py2.7.egg/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.18.4-py2.7.egg/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests-2.18.4-py2.7.egg/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.18.4-py2.7.egg/requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='httpbin.org', port=443): Max retries exceeded with url: /ip (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)'),))
7条答案
按热度按时间ma8fv8wu1#
和 #266 貌似说的是一个问题
2ledvvac2#
Hi @yifeikong
明白你的意思了,可否介绍一下这种情形的使用场景, 就是类似于另一个代理是必须要经过的,但是同时也用AnyProxy来对这个请求和返回做处理吗?
ocebsuys3#
某些公司的办公室内网必须通过代理服务才能访问外网
gpnt7bae4#
Hi @yifeikong@gucong3000
AnyProxy目前没有原生支持上游代理,如果你们是要自己使用,利用现在的Rule模块,也可以尝试。 因为在 rule的beforeSendRequest 方法中,已经将整个requestdetail对象透出,理论上上可以直接修改请求属性,将请求主机改为代理机器, 伪代码如下:
khbbv19g5#
@codingfishman 我用这段代码能达到这个效果。
现在有另外个问题,我设置的是不解析https,这样的话https请求是不会进入beforeSendRequest的。
等于https请求也不会转发到上游代理,期望在不解析https的情况下也有办法转发https请求。
btqmn9zl6#
@biuuu
AnyProxy转发请求是基于能改变它的前提下,如果对https不开启代理,那么将无法再次转发。 能否问一下为何期望不解析https?
nhhxz33t7#
@codingfishman
如果我在客户端程序中直接使用上游代理( 同样是 http 代理),访问 https 网址不存在证书信任问题:
虽然代理服务器无法修改内容,但是很多场合下无需修改内容,仅仅是要一个转发。
如果经过 anyproxy 转发设置上游代理,将出现 CERTIFICATE_VERIFY_FAILED 的证书信任问题,rules 规则是这样的:
Python 客户端程序使用 Anyproxy 的端口将报错:
请问:能否修改 options 的 agent 属性,同时不解析它的具体内容?
是否这种情况下我就不该再使用 anyproxy?