我最终将我的Python版本从2.7升级到3.6.1,并将我的mitmproxy
从旧的和好的v0.16升级到最新的版本。
我曾经使用libmproxy
来处理使用以下语法通过代理转移的请求:
from netlib.http import decoded
from libmproxy import controller, proxy
from libmproxy.proxy.server import ProxyServer
class StickyMaster(controller.Master):
def __init__(self, server):
controller.Master.__init__(self, server)
self.stickyhosts = {}
def run(self):
try:
return controller.Master.run(self)
except KeyboardInterrupt:
self.shutdown()
def handle_request(self, flow):
flow.reply()
def handle_response(self, flow):
with decoded(flow.response):
<DO SOMETHING>
flow.reply()
config = proxy.ProxyConfig(port=8081)
server = ProxyServer(config)
m = StickyMaster(server)
m.run()
据我所知,在新版本中,语法完全不同,我无法找到相关文档,并举例说明如何做到这一点。
有人可以和我分享一些基本代码的例子,比如我上面写的最新版本吗?
答案 0 :(得分:0)
我们已经弃用了“libmproxy子类化”方法,并且更加灵活地实现了插件。事实上,mitmproxy的大多数核心功能都是作为插件实现的。所以简短的回答是:写一个插件!
我们在http://docs.mitmproxy.org/en/stable/scripting/overview.html介绍了插件开发。对于代码示例,您还应该查看https://github.com/mitmproxy/mitmproxy/tree/master/examples/simple。
答案 1 :(得分:-1)
没有官方对等,他们放弃了通过库使用代理而不使用命令和附加/外部应用程序。