mitmproxy 抓包工具,优点可以使用python进行二次开发,或者进行接口的mock
官网地址:mitmproxy - an interactive HTTPS proxy
打算用这个最初的需求是,想对app做接口测试,但是app的接口有200多个,这么多接口,如果人工的的抓包或者获取,很浪费人力,那能不能自动的抓取到所有的请求呢?
答案是可以,使用mitmdump -s xx.py 可以过滤我们想要的数据,比如存到数据库之类的
from mitmproxy import ctx
# 所有的请求都会经过request
def request(flow):
info = ctx.log.info
d = {}
if flow.request.host == 'xxxxx': # 过滤请求,如果host是xxx则写入请求相关信息
d['url'] = flow.request.url
d['host'] = flow.request.host
d['headers'] = flow.request.headers
d['method'] = flow.request.method
if flow.request.method == 'POST':
d['body'] = flow.request.get_text()