我正在关注 following 问题中的代码(转载如下):
def response(flow):
print("")
print("="*50)
print(flow.request.method + " " + flow.request.path + " " + flow.request.http_version)
print("-"*25 + " request headers " + "-"*25)
for k, v in flow.request.headers.items():
print("%-30s: %s" % (k.upper(), v))
print("-"*25 + " response headers " + "-"*25)
for k, v in flow.response.headers.items():
print("%-30s: %s" % (k.upper(), v))
print("-"*25 + " body (first 100 bytes) " + "-"*25)
print(flow.request.content[0:100])
我无法理解在使用 mitmproxy 时在哪里可以找到 flow
变量。您如何连接 mitmproxy 以便您可以接收该请求流?
答案 0 :(得分:2)
我错了。看起来您传入带有 -s
标志的脚本 类似于:
mitmproxy -s myscript.py
基本上你传入文件名,mitmproxy 会加载它并调用 request()
函数,传入你提到的流变量。
我认为阅读这两页可能会有所帮助。请注意,它们具有不同类型的附加组件。我认为您拥有的简单无类 request()
函数将使其成为“脚本”类型。
https://docs.mitmproxy.org/stable/addons-overview/
https://docs.mitmproxy.org/stable/addons-scripting/
文档中还有更多示例。 另外,我发现这个 GitHub 存储库对示例很有帮助: