我一直在为运行在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上。在
目前没有回答
相关问题 更多 >
编程相关推荐