我正在使用mitmproxy,我对它仍然相当陌生(已经使用它几天了)。现在我正在尝试拦截get请求,并将字符串的所有实例替换为"data: 123",例如"data: 456",然后恢复信息流,目的是从应用程序中获取某个响应。我已经到了我成功拦截我想要的url的地步,但我不明白如何创建一个脚本来替换"data: 123"的所有实例,或者如果它甚至可以在拦截时这样做。任何帮助都是感激的!get请求看起来像这样。替换所有实例的原因是数据似乎重复了几次(不必要的?),手动替换每个实例是不可行的。
"text": {
"data": "123",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
"text": {
"data": "123",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
请注意,我拦截的实际数据更大,并且没有像这样很好地格式化,因此需要脚本。我已经看过https://github.com/mitmproxy/mitmproxy上的例子,但似乎没有什么对我想做的事情有帮助。
任何帮助和指导,为我的问题找到一个解决方案是非常感激的!!您可以在文档中给出的实现示例中的handle_requests方法中获取和修改get请求路径。
def handle_request(self, flow):
request = flow.request
# ---------------------------------
# Play with the GET path with regex
# Add 'import re'
newPath = re.sub(r"data:123", "data:456", request.path)
# ---------------------------------
flow.request.path = newPath
flow.reply()