我已经设置了一个龙卷风HTTP服务器作为代理服务器。 我正在使用python请求库将其用作代理服务器。 当我尝试使用它获取HTTP URL时,它工作正常。但它并没有拦截HTTPS请求。
代理服务器部分:
class ProxyServer(HTTPServerConnectionDelegate):
def start_request(self, server_conn, request_conn):
print('In start request')
return ClientDelegator(request_conn)
def on_close(self):
pass
def client_send_error(self):
self.write('Error happened.')
self.finish()
def main():
server = HTTPServer(ProxyServer())
server.bind(8888)
server.start(0)
tornado.ioloop.IOLoop.current().start()
if __name__ == "__main__":
main()
请求部分:
import requests
url = 'https://example.com'
proxy = {'http' : '127.0.0.1:8888'}
r = requests.get(url, proxies=proxy, verify=False)
print(r.text)
当我使用 http://example.com 时,连接会以'在启动请求'中开始。得到印刷。但是,当我使用 https://example.com 时,连接就不会启动。 ProxyServer 无法进入 start_request 。
我做错了什么?
答案 0 :(得分:1)
您的proxy
变量仅指定http
的代理,而不是https
。您需要分别为两个协议设置代理。