如何编写避免任何网络请求的 mitmproxy 插件?

在过去的几天里,我尝试了 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")


万千封印
浏览 182回答 1
1回答

蛊毒传说

当 mitmproxy 收到请求时,请求钩子将被执行,一旦我们从服务器获取响应,响应钩子将被执行。长话短说,一切都response为时已晚。相反,您需要flow.response在request挂钩中进行分配。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python