import time
from mitmproxy.script import concurrent
@concurrent # Remove this and see what happens
def request(flow):
# This is ugly in mitmproxy's UI, but you don't want to use mitmproxy.ctx.log from a different thread.
print(f"handle request: {flow.request.host}{flow.request.path}")
time.sleep(5)
print(f"start request: {flow.request.host}{flow.request.path}")
启动命令:mitmdump -p 8333 -s examples/addons/nonblocking.py --set upstream_cert=false --ssl-insecure --flow-detail 3
发送 HTTP 请求: curl http://www.xxx.com --proxy http://0.0.0.0:8333
启动 mitmproxy 代理,如果是 HTTP 请求的话,request 函数中可以接收处理,可以根据 host (flow.request.pretty_host) 是否等于 www.xxx.com 决定是否代理到不同服务。
我现在想解决的是 mitmproxy 能正常接收 grpc 的请求,同样根据 host 转发到不同服务。请问下针对这块楼主有经验吗?
mitmproxy 可以像代理 http 一样直接代理 Grpc 协议吗?