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

使用mitmproxy修改JSON响应体失败问题求助

问题排查与解决

问题原因

你当前的代码直接在JSON根对象data下添加/修改字段,但目标字段实际嵌套在Data -> response的层级结构里,所以根本没触及到要修改的目标字段,反而在根节点新增了同名字段,导致出现你看到的异常结果。

原始响应的结构层级是:

{
    "Data": {
        "response": {
            "encrypt": "",  // 目标字段在这一层
            "message": "0006",
            "status": "1",
            "unlock": null
        }
    },
    "ErrorCode": 0,
    "Message": null
}

修复后的代码

修改代码,定位到正确的嵌套层级进行字段修改:

from mitmproxy import ctx
from mitmproxy import http
import json

def response(flow: http.HTTPFlow) -> None:
    if flow.request.pretty_url.endswith("/api/url/go"):
        data = json.loads(flow.response.get_text())
        # 定位到Data下的response对象,再修改目标字段
        response_data = data["Data"]["response"]
        response_data["encrypt"] = "5656"
        response_data["message"] = ""
        response_data["status"] = "0"
        response_data["unlock"] = ""        
        flow.response.text = json.dumps(data)

说明

通过data["Data"]["response"]获取到真正包含目标字段的对象,再对该对象内的字段进行修改,就能正确覆盖原始响应里的对应字段,不会在根节点新增冗余内容。

内容的提问来源于stack exchange,提问作者Салим Махотлов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:32:02