Как отобразить размер HTTP-запроса в Fiddler? - PullRequest
11 голосов
/ 06 мая 2009

Я хотел бы отобразить размер каждого запроса в списке сеансов Fiddler. До сих пор я пытался добавить пользовательский столбец в файл CustomRules.js:

public static BindUIColumn("RequestSize")
function CalcMethodCol(oS: Session)
{
  if (null != oS.requestBodyBytes)
    return oS.requestBodyBytes.Length; //this is the relevant line
  else
    return "?";
}

Но это приводит к ошибке, когда fiddler пытается загрузить скрипт.

Если я изменю строку с комментарием к этому:

    return typeof(oS.requestBodyBytes.Length);

тогда fiddler отображает «число» в столбце RequestSize. Из-за этого я думаю, что я не очень далеко от того, чего я пытаюсь достичь. Я просто не могу понять, как отобразить размер поля requestBodyBytes.

Любые намеки на то, что я делаю неправильно или чего не хватает?

Ответы [ 2 ]

9 голосов
/ 07 июля 2009

Обновление В современных версиях Fiddler вы можете просто щелкнуть правой кнопкой мыши заголовки столбцов, выбрать «Настроить столбцы» и добавить столбец Miscellaneous> Request Size.


В зависимости от ваших потребностей, это может быть не совсем тем, что вы хотите сделать, потому что оно показывает только длину тела запроса и не включает размер заголовков.

Вот улучшенная версия:

public  static  BindUIColumn("Req-Size")
function  CalcReqSize(oS:  Session){        
  if (null == oS.oRequest) return String.Empty;
  var cBytesOut: int = 0;

  if (null != oS.requestBodyBytes) cBytesOut += oS.requestBodyBytes.LongLength; 
  if ((null != oS.oRequest) && (null != oS.oRequest.headers)) cBytesOut += 
  oS.oRequest.headers.ByteCount() ; 
  return cBytesOut.ToString();
}
5 голосов
/ 07 мая 2009

ОК, я знал, что не за горами. Вот ответ на мой вопрос.

Этот сценарий, помещенный в CustomRules.js, напечатает длину / размер HTTP-запроса в fiddler:

public  static  BindUIColumn("Req-Length")
function  CalcMethodCol(oS:  Session){
    if (null != oS.oRequest)
            return oS.requestBodyBytes.LongLength.ToString();
        else
            return String.Empty;
}
...