Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Fiddler XML解析_Javascript_Json_Xml_Fiddler - Fatal编程技术网

Javascript Fiddler XML解析

Javascript Fiddler XML解析,javascript,json,xml,fiddler,Javascript,Json,Xml,Fiddler,FiddlerScript是。例如,以下对onbeforesponse的添加将偷偷地用127.0.0.1替换返回的外部IP地址: if (oSession.url == "api.ipify.org/?format=json"){ var j = GetResponseJson(oSession); j["ip"] = "127.0.0.1"; SetResponseJson(oSession, j); } 其中GetResponseJson和SetResponseJ

FiddlerScript是。例如,以下对onbeforesponse的添加将偷偷地用
127.0.0.1
替换返回的外部IP地址:

if (oSession.url == "api.ipify.org/?format=json"){
    var j = GetResponseJson(oSession);
    j["ip"] = "127.0.0.1";
    SetResponseJson(oSession, j); 
}
其中
GetResponseJson
SetResponseJson
是我根据Eric的链接答案生成的助手函数:

static function GetResponseJson(oSession: Session){
    return Fiddler.WebFormats.JSON.JsonDecode(oSession.GetResponseBodyAsString()).JSONObject;
}
static function SetResponseJson(oSession: Session, j){  
    oSession.utilSetResponseBody(Fiddler.WebFormats.JSON.JsonEncode(j));
}
这对于修改Fiddler截获的JSON有效负载非常有用

我的问题是:

  • 在FiddlerScript中是否有解析和修改XML的等效方法

    • FiddlerScript使用JScript.NET,因此可以引用.NET程序集,包括
      System.Xml
      ,其中包含
      XmlDocument

      首先,在Fiddler>Tools>Fiddler Options>Extensions中,添加对
      System.Xml.dll
      的引用:

      接下来,在FiddlerScript的顶部,引用它:

      import System.Xml;
      
      此时,您可以创建
      XmlDocument
      对象:

      var x = new XmlDocument();
      

      FiddlerScript使用JScript.NET,因此可以引用.NET程序集,包括
      System.Xml
      ,其中包含
      XmlDocument

      首先,在Fiddler>Tools>Fiddler Options>Extensions中,添加对
      System.Xml.dll
      的引用:

      接下来,在FiddlerScript的顶部,引用它:

      import System.Xml;
      
      此时,您可以创建
      XmlDocument
      对象:

      var x = new XmlDocument();
      

      要从响应中的XML节点添加自定义列,需要使用FiddlerScript

      加载System.xml引用后,可以在FiddlerScript(规则>自定义规则)中添加以下内容:

      public static BindUIColumn("Request")
          function testXmlColumn(oSession: Session){
              if (oSession.oResponse != null && oSession.oResponse["Content-Type"] == "text/xml; charset=utf-8") {
                  var doc = new XmlDocument();
      
                  doc.LoadXml(oSession.GetResponseBodyAsString());
      
                  var xPathString = '/an/XPath/Expression';
      
                  var xmlNode = doc.DocumentElement.SelectSingleNode(xPathString);
      
                  return xmlNode.InnerText;
            }
          return "";
      }
      

      显然,您需要用XPath表达式替换
      /an/XPath/Expression
      。这是一种非常简单的语言来匹配一个节点。

      要在响应中从XML中的节点添加自定义列,需要使用FiddlerScript

      加载System.xml引用后,可以在FiddlerScript(规则>自定义规则)中添加以下内容:

      public static BindUIColumn("Request")
          function testXmlColumn(oSession: Session){
              if (oSession.oResponse != null && oSession.oResponse["Content-Type"] == "text/xml; charset=utf-8") {
                  var doc = new XmlDocument();
      
                  doc.LoadXml(oSession.GetResponseBodyAsString());
      
                  var xPathString = '/an/XPath/Expression';
      
                  var xmlNode = doc.DocumentElement.SelectSingleNode(xPathString);
      
                  return xmlNode.InnerText;
            }
          return "";
      }
      
      显然,您需要用XPath表达式替换
      /an/XPath/Expression
      。这是一种相当简单的语言来匹配节点