Использование FiddlerScript (JScript.Net) для изменения ответа JSON на ноль - PullRequest
0 голосов
/ 25 сентября 2018

Я использую Fiddler "FiddlerScript" для изменения ответов с веб-сервера, чтобы я мог проверить ответы в своем приложении.

Вот моя функция OnBeforeResponse:

static function OnBeforeResponse(oSession: Session) {
    // This code was already here, leaving it
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }
    // Here is new code to modify server's response
    if(oSession.HostnameIs("mydomain.com") && oSession.uriContains("config")) {
        // Color this response, so we can spot it in Fiddler
        oSession["ui-backcolor"] = "lime";

        // Convert the request body into a string
        var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);

        var j: Fiddler.WebFormats.JSON.JSONParseResult;
        // Convert the text into a JSON object
        // In this case our JSON root element is a dictionary (HashTable)
        j = Fiddler.WebFormats.JSON.JsonDecode(oBody);

        // Inside of our dictionary, we have an array (ArrayList) called "placements"
        var testObject = j.JSONObject["test"];
        /* Change this to different values, e.g. "0.0", 0.0, null, "", etc. */
        /* This works */
        testObject["consent_version"] = "";
        /* This works */
        testObject["consent_version"] = 0.0;
        /* This works */
        testObject["consent_version"] = "0.0";
        /* This fails */
        testObject["consent_version"] = null;

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

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

Явозможность установить testObject ["accept_version"] на любое значение, кроме нуля.Если я установлю для этого параметра значение NULL, Fiddler создаст JSON, который не имеет никакого значения, и JSON имеет неправильный формат, подобный следующему:

"consent_version":,

Обратите внимание, что после "согласия_версии" и до не существует значениязапятая.

Кто-нибудь знает, как я могу использовать FiddlerScript (который основан на JScript.Net), чтобы установить нулевое значение?

...