mitmproxy/examples/redirect_requests.py

25 lines
791 B
Python
Raw Normal View History

2013-04-07 17:16:01 +00:00
"""
This example shows two ways to redirect flows to other destinations.
"""
from mitmproxy.models import HTTPResponse
2015-09-05 18:45:58 +00:00
from netlib.http import Headers
2014-05-15 12:37:05 +00:00
2016-05-29 08:23:39 +00:00
2016-07-08 01:37:33 +00:00
def request(flow):
# pretty_host takes the "Host" header of the request into account,
2015-05-30 00:03:28 +00:00
# which is useful in transparent mode where we usually only have the IP
# otherwise.
2014-09-08 14:02:31 +00:00
# Method 1: Answer with a locally generated response
if flow.request.pretty_host.endswith("example.com"):
2014-05-15 12:37:05 +00:00
resp = HTTPResponse(
2016-07-07 00:31:08 +00:00
b"HTTP/1.1", 200, b"OK",
2015-09-05 18:45:58 +00:00
Headers(Content_Type="text/html"),
2016-07-07 00:31:08 +00:00
b"helloworld"
)
flow.reply.send(resp)
2014-09-08 14:02:31 +00:00
# Method 2: Redirect the request to a different server
if flow.request.pretty_host.endswith("example.org"):
flow.request.host = "mitmproxy.org"