【问题标题】:Fiddler Change parameter post request and postdata OnBeforeRequestFiddler 更改参数 post 请求和 postdata OnBeforeRequest
【发布时间】:2013-05-21 14:58:28
【问题描述】:

我想在此处请求特殊功能之前更改参数名称但没有任何效果

static function ReplaceQueryParameter(sName: String, sValue: String)
{
    var re:RegExp;
    if (sValue == null) {
        re = new RegExp( "(" + sName + "=)(([^&]*)|$)");
     var   ret = gs_QueryString.replace(re, '');
        gs_QueryString = ret;
    }
    else {
        re = new RegExp( "(" + sName + "=)(([^&]*)|$)");
       var ret = gs_QueryString.replace(re, "$1" + sValue);
        gs_QueryString = ret;
    }
}


  static function OnBeforeRequest(oSession: Session)
{


    gs_QueryString = System.Text.Encoding.UTF8.GetString(oSession.requestBodyBytes);
    ReplaceQueryParameter('username','username1');
          SetBodyFromQueryString(oSession);

}

有什么帮助吗?

【问题讨论】:

    标签: fiddler


    【解决方案1】:

    此代码存在多个问题。一方面,您似乎正试图在多个请求之间共享一个变量(“gs_QueryString”)。当多个会话并行执行时,这将导致竞争条件和损坏。

    您也对请求中的数据感到困惑。

    requestBodyBytes byte[] 包含任何 POST 或 PUT 正文中的字节。 GET 没有任何正文字节。

    url 字符串包含包含任何 QueryString 参数的 URL。所有请求都有一个 url。

    如果您尝试更改作为 URL 一部分的 QueryString,请使用:

    var gs_QueryString = oSession.url;
    oSession.url = ReplaceQueryParameter('username','username1');
    

    ...并更新 ReplaceQueryParameter 函数以返回一个值,而不是尝试更新未受保护的共享变量。

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多