最近几天,我尝试使用mitmproxy作为测试工具,并且效果很好。但是,尽管我能够编写拦截请求的附件(甚至更改其URL,如下面的示例),但我也无法避免该请求实际上是在网络中分发的。
总是以某种方式使用网络执行请求。
那么,我该如何修改附加组件,使其在发出请求时返回固定的响应,从而避免任何联网请求?
class Interceptor:
def request(self, flow: http.HTTPFlow):
if http.method() == "GET":
flow.request.url = "http://google.com"
def response(self, flow: http.HTTPFlow):
return http.HTTPResponse.make(status_code=200,b"Rambo 5")
答案 0 :(得分:0)
当mitmproxy收到请求时,将执行请求挂钩,一旦从服务器获取了响应,则将执行响应挂钩。长话短说,response
钩中的所有内容都为时已晚。
相反,您需要在flow.response
挂钩中分配request
。