You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Charles Proxy改写响应体中的session_id为无效值?新手求助

如何用Charles Proxy改写响应体中的session_id为无效值

步骤1:启用Rewrite并创建规则集

  • 打开Charles,点击顶部菜单 Tools > Rewrite
  • 勾选「Enable Rewrite」,然后点击「Add」创建新规则集(命名比如「Modify Session ID」)

步骤2:配置目标请求匹配规则

切换到规则集的「Location」标签页,点击「Add」设置匹配条件,确保只命中你要修改的接口:

  • Host:填写接口的域名(如api.yourdomain.com,用*可匹配所有域名,建议精准匹配)
  • Path:填写接口路径(如/v1/auth/get_session,同样支持*模糊匹配)
  • 其他条件按需设置,避免误改其他接口的响应

步骤3:添加响应体替换规则(核心)

切换到「Rewrite」标签页,点击「Add」,按以下配置:

  • Type:选择「Body」
  • Action:选择「Replace」
  • Match Using:选择「Regular Expression」
  • Find:输入正则表达式 "session_id":\s*"([^"]+)"

    解释:精准匹配JSON中"session_id": "xxx"格式的内容,捕获引号内的原有session_id值

  • Replace with:输入你要设置的无效值,比如 "session_id": "invalid_session_123"

注意:如果你的实际响应中使用了中文引号(如示例里的「“session_id"」),需要把正则改成 “session_id":\s*“([^”]+)”,不过接口返回一般是英文引号,优先用前者

步骤4:验证规则生效

  • 如果接口是HTTPS,必须开启SSL代理:点击顶部菜单 Proxy > SSL Proxying Settings,勾选「Enable SSL Proxying」,点击「Add」输入目标域名和端口443
  • 移动端配置Charles代理后,触发目标接口请求,查看Charles的「Response」标签,确认session_id已被替换为无效值

常见问题排查

  • 规则未命中:检查「Location」的Host/Path是否匹配目标接口,可通过Charles的请求列表确认接口的Host和Path
  • 正则不生效:检查响应体中session_id的格式是否和正则匹配,比如有没有多余的空格、引号类型是否正确
  • 响应未解压:如果响应是GZIP压缩的,去 Proxy > Settings > Miscellaneous 勾选「Uncompress responses」

内容的提问来源于stack exchange,提问作者Saro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:14:57