From 9af8f4bb31c94a25780a4189bffa406906249626 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Mon, 21 Nov 2016 02:16:20 +0100 Subject: organize examples This commit is largely based on work by Thiago Arrais (@thiagoarrais) and Shane Bradfield (@l33tLumberjack). I wasn't really able to get their PR reasonably merged onto the latest master, so I reapplied their changes manually here and did some further improvements on that. --- examples/complex/flowbasic.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 examples/complex/flowbasic.py (limited to 'examples/complex/flowbasic.py') diff --git a/examples/complex/flowbasic.py b/examples/complex/flowbasic.py new file mode 100644 index 00000000..25b0b1a9 --- /dev/null +++ b/examples/complex/flowbasic.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +""" + This example shows how to build a proxy based on mitmproxy's Flow + primitives. + + Heads Up: In the majority of cases, you want to use inline scripts. + + Note that request and response messages are not automatically replied to, + so we need to implement handlers to do this. +""" +from mitmproxy import controller, options, master +from mitmproxy.proxy import ProxyServer, ProxyConfig + + +class MyMaster(master.Master): + def run(self): + try: + master.Master.run(self) + except KeyboardInterrupt: + self.shutdown() + + @controller.handler + def request(self, f): + print("request", f) + + @controller.handler + def response(self, f): + print("response", f) + + @controller.handler + def error(self, f): + print("error", f) + + @controller.handler + def log(self, l): + print("log", l.msg) + + +opts = options.Options(cadir="~/.mitmproxy/") +config = ProxyConfig(opts) +server = ProxyServer(config) +m = MyMaster(opts, server) +m.run() -- cgit v1.2.3