1、安装
pip install mitmproxy2、启动,代理端口根据实际情况修改
#mit代理 http://127.0.0.1:8888 mitmweb --listen-port 88883、开启web页面 http://127.0.0.1:8081/
4、让ap走代理
- 代码设置代理
只影响该代码本身
import os os.environ["HTTP_PROXY"] = "http://127.0.0.1:8888" os.environ["HTTPS_PROXY"] = "http://127.0.0.1:8888"- 环境变量设置代理
注意:因为设置环境变量,会导致其他ap也走代理,需要时才用这个方法,测试后删除环境变量
$env:HTTP_PROXY="http://127.0.0.1:8888" $env:HTTPS_PROXY="http://127.0.0.1:8888"5、可能出现https请求问题
这个问题是因为 mitmweb 的 HTTPS 证书没有被信任导致的。当你设置代理后,HTTPS 请求会经过 mitmproxy,但它使用的自签名证书不被 Python 信任。
解决方法1:用环境变量方法
解决方法2:使用 httpx 客户端配置
import httpx # 创建一个跳过 SSL 验证的 httpx 客户端 http_client = httpx.Client( proxy="http://127.0.0.1:8888", verify=False # 跳过 SSL 验证 ) llm = ChatOpenAI( model="xop35qwen2b", openai_api_key=os.getenv("xf_API_KEY"), openai_api_base="https://maas-api.cn-huabei-1.xf-yun.com/v2", temperature=0.7, max_tokens=1024, http_client=http_client # 传入自定义客户端 )解决方法3:跳过SSL验证,可能不安全,测试好像无效
import os os.environ["HTTP_PROXY"] = "http://127.0.0.1:8888" os.environ["HTTPS_PROXY"] = "http://127.0.0.1:8888" os.environ["SSL_CERT_FILE"] = "" # 清空证书环境变量解决方法4:安装 mitmproxy 证书(待验证)
Windows:
启动 mitmweb
浏览器访问
http://mitm.it下载 Windows 证书
双击安装,选择"受信任的根证书颁发机构"
或者手动安装:
# 1. 生成证书 mitmdump --set block_global=false # 2. 证书位置通常在: # Windows: %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.pem # Linux/Mac: ~/.mitmproxy/mitmproxy-ca-cert.pem # 3. 在代码中指定使用这个证书 import os os.environ["REQUESTS_CA_BUNDLE"] = r"C:\Users\你的用户名\.mitmproxy\mitmproxy-ca-cert.pem" os.environ["SSL_CERT_FILE"] = r"C:\Users\你的用户名\.mitmproxy\mitmproxy-ca-cert.pem"