在fiddler中修改响应时,JSON值被反转

时间:2017-10-26 15:38:46

标签: json fiddler

我正在编写一个fiddler脚本来修改服务器的响应。 以下是代码:

static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
        if (oSession.host == "localhost:8000") {

           var sbody = oSession.GetResponseBodyAsString();

           var oJSON1:Fiddler.WebFormats.JSON.JSONParseResult=Fiddler.WebFormats.JSON.JsonDecode(sbody);

           //some junk modification
           var value = oJSON1.JSONObject["n4"];
           value + =1;
            oJSON1.JSONObject["n4"] = value;

            // Convert back to a byte array
            var modBytes = Fiddler.WebFormats.JSON.JsonEncode(oJSON1.JSONObject);

            // Convert json to bytes, storing the bytes in request body
            var mod = System.Text.Encoding.UTF8.GetBytes(modBytes);
            oSession.responseBody = mod;

        }
    }

服务器发送了正确的JSON响应:

{"n4":"9pjjvezwRVUIvycpsXco4g==","eB":[92,684,"dLzPnLRYquJ7b7b"]}
我在OnBeforeResponse函数中捕获的

修改并将其发送给客户端。

OnBeforeResponse函数中:

var sbody = oSession.GetResponseBodyAsString();

给了我正确的JSON响应,如上所述, 但是当我使用

将JSON转换回字节数组时
var modBytes = Fiddler.WebFormats.JSON.JsonEncode(oJSON1.JSONObject);

此时我的JSON响应已逆转

{"eB":[92,684,"dLzPnLRYquJ7b7b"], "n4":"9pjjvezwRVUIvycpsXco4g==1"}

我无法弄清楚我做错了什么。请帮帮我。完全是Fiddler和JSON的新手。

0 个答案:

没有答案