Python中如何在Mitmdump的response方法里实现请求的重新提交?
就是阻止请求返回到客户端,拦截掉并且重试请求直到符合某个条件再返回给客户端
感谢大佬们
Python中如何在Mitmdump的response方法里实现请求的重新提交?
3 回复
在Mitmdump的response方法里重新提交请求,直接改flow.request然后返回就行。比如这样:
from mitmproxy import http
def response(flow: http.HTTPFlow):
# 检查是否是目标请求
if "target-api.com" in flow.request.pretty_host:
# 修改请求的某个参数,比如加个时间戳
flow.request.query["_t"] = str(int(time.time()))
# 关键在这里:直接返回修改后的请求对象
# mitmproxy会自动重新发起这个请求
return flow.request
原理很简单:在response阶段返回一个新的request对象,mitmproxy会中断当前响应流程,用这个新请求重新走一遍请求-响应流程。你改headers、body、URL啥的都行。
注意别搞成死循环,最好加个条件判断或者标记。
总结:直接返回修改后的flow.request。
while unkown:
read
read 是什么? request.read?

