把类DebugInterceptor当作参数传给AsyncMitmProxy类下面的register_interceptor方法,我怎么可以在ajkproxy类里获取到DebugInterceptor类下面的do_request方法的返回值呢classmmproxy...
把类DebugInterceptor当作参数传给 AsyncMitmProxy类下面的register_interceptor方法,我怎么可以在ajkproxy类里获取到DebugInterceptor类下面的do_request方法的返回值呢
class mmproxy ():
def start(self):
self.proxy = AsyncMitmProxy()
self.proxy.register_interceptor(DebugInterceptor)
self.proxy.serve_forever()
def filter_request(self):
pass
def geturlinfo(self):
print('#' * 200)
ss = self.proxy.do_request
print ss
class MitmProxy(HTTPServer):
print 5
def __init__(self, server_address=('', 8080), RequestHandlerClass=ProxyHandler, bind_and_activate=True, ca_file='ca.pem'):
HTTPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate)
self.ca = CertificateAuthority(ca_file)
self._res_plugins = []
self._req_plugins = []
def register_interceptor(self, interceptor_class):
if not issubclass(interceptor_class, InterceptorPlugin):
raise InvalidInterceptorPluginException('Expected type InterceptorPlugin got %s instead' % type(interceptor_class))
if issubclass(interceptor_class, RequestInterceptorPlugin):
self._req_plugins.append(interceptor_class)
if issubclass(interceptor_class, ResponseInterceptorPlugin):
self._res_plugins.append(interceptor_class)
class DebugInterceptor(RequestInterceptorPlugin, ResponseInterceptorPlugin):
def do_request(self, data):
if 'stb' in data:
urls = urlparse(data)
print urls
urlss = urlunsplit(data)
print urlss
# print '>> %s' % repr(data[:65536])
return data
def do_response(self, data):
if 'stb' in data:
print '<< %s' % repr(data[:65536])
return data
展开