mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 08:11:00 +00:00
a388ddfd78
Reply is now explicit - it's no longer a callable itself. Instead, we have: reply.kill() - kill the flow reply.ack() - ack, but don't send anything reply.send(message) - send a response This is part of an incremental move to detach reply from our flow objects, and unify the script and handler interfaces.
24 lines
788 B
Python
24 lines
788 B
Python
"""
|
|
This example shows two ways to redirect flows to other destinations.
|
|
"""
|
|
from mitmproxy.models import HTTPResponse
|
|
from netlib.http import Headers
|
|
|
|
|
|
def request(context, flow):
|
|
# pretty_host takes the "Host" header of the request into account,
|
|
# which is useful in transparent mode where we usually only have the IP
|
|
# otherwise.
|
|
|
|
# Method 1: Answer with a locally generated response
|
|
if flow.request.pretty_host.endswith("example.com"):
|
|
resp = HTTPResponse(
|
|
"HTTP/1.1", 200, "OK",
|
|
Headers(Content_Type="text/html"),
|
|
"helloworld")
|
|
flow.reply.send(resp)
|
|
|
|
# Method 2: Redirect the request to a different server
|
|
if flow.request.pretty_host.endswith("example.org"):
|
|
flow.request.host = "mitmproxy.org"
|