Mitmproxy重定向在python中不起作用(Raspberry Pi)

2024-06-07 18:16:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为运行在raspberry pi上的mitmproxy编写重定向脚本。我看过帖子here,但没用。所发生的是请求仍然通过原始主机url。经过一些更改后,它将尝试重定向到新站点,但状态代码没有反映出这一点,它仍在加载原始站点的资源。将路径设为空字符串暂时修复了此问题(它不再通过将资源追加到新的url上来调用资源)。另外,由于原始脚本不起作用,我试图通过在响应的标题中添加“Location”来进行更改,以反映手动重定向的工作方式。在

import mitmproxy
from mitmproxy.models import HTTPResponse
from netlib.http import Headers
def request(flow):

if flow.request.pretty_host.endswith("sojourncollege.com"):
        mitmproxy.ctx.log( flow.request.path )
        method = flow.request.path.split('/')[3].split('?')[0]            
        flow.request.host = "reddit.com"
        flow.request.port = 80
        flow.request.scheme = 'http'
        flow.request.path = ''            
        if method == 'getjson':
            flow.request.path=flow.request.path.replace(method,"getxml")
        flow.request.headers["Host"] = "reddit.com"
        flow.response.status_code = 302
        flow.response.headers.append("Location")
        mitmproxy.ctx.log(flow.response.headers)
        flow.response.headers["Location"] = "reddit.com"

现在发生的是重复301 Get请求http://reddit.com和一条[no content]消息。如果我在chrome上加载networking标签查看它试图到达“http://wwww.reddit.comhttp/1.1”的请求,我不知道为什么会这样。在

这些东西似乎对其他人有用,我不知道为什么它不在pi上。在


Tags: pathimportcomhttpresponserequestpilocation

热门问题