2017-04-27 2 views
4

私は最終的にPythonバージョンを2.7から3.6.1にアップグレードしました。また、これもまた、古いと良いv0.16から最新バージョンに私のmitmproxyをアップグレードしました。新しいmitmproxyのlibmproxyに相当するものは何ですか?

私はこの構文を使用してプロキシ経由で転用された要求を操作するために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() 

私は新しいバージョンで構文が全く異なるものであると私はできないことを理解関連する文書を見つけ、その権利をどのように行うかの例を挙げてください。

誰かが私に最新のバージョンの上に書いたような基本的なコードの例を共有できますか?

答えて

1

「libmproxyサブクラス化」アプローチは、より柔軟なアドオンの実装で廃止されました。実際、mitmproxyの主な機能のほとんどはアドオン自体として実装されています。だから短い答えは:アドオンを書く!

アドオン開発の概要をhttp://docs.mitmproxy.org/en/stable/scripting/overview.htmlに提供します。コード例については、https://github.com/mitmproxy/mitmproxy/tree/master/examples/simpleもご覧ください。

関連する問題