2016-12-12 4 views
0

У меня есть приложение для Android, которое делает запрос на example.com. Как настроить mitmproxy так, чтобы все запросы example.com/etc/else перешли на dev.example.com/etc/else?Перепишите домен в mitmproxy

Я попытался это:

Мой сценарий (rewrite.py):

import mitmproxy 
from mitmproxy.models import HTTPResponse 
from netlib.http import Headers 

def request(context, flow): 
    if 'example.com' in flow.request.url : 
     flow.request.host = 'dev.example.com' 

Кроме того, по какой-то причине я не вижу входе вывода, например:

from mitmproxy import ctx 
... 
ctx.log.info("This is some informative text.") 

Я запускаю mitmproxy следующим образом:

mitmproxy -p 8765 -e -s rewrite.py 
+0

Какая версия mitmproxy вы используете? Что произойдет, если вы запустите то же самое с mitmdump? –

+0

@MaximilianHils моя версия 0.18.2. То же самое с mitmdump просто печатает меня CONNECT example.com:443, но не dev.example.com – valk

+0

Кроме того, 'def request (context, flow)' нуждается только в одном аргументе, поэтому я оставил его с 'def request (flow)' – valk

ответ

0

Итак, с mitmproxy v0.18.2 решение:

import mitmproxy 
from mitmproxy.models import HTTPResponse 
from netlib.http import Headers 
from mitmproxy import ctx 

def request(flow): 
    if flow.request.pretty_host.endswith('example.com'): 
     flow.request.host = 'dev.example.com' 
     flow.request.scheme = 'http' 
     flow.request.port = 80 
     ctx.log.info(" --->" + flow.request.url)