Как отобразить размер HTTP-запроса в Fiddler?
-
06-07-2019 - |
Вопрос
Я хотел бы отобразить размер каждого запроса в списке сеансов скрипача. До сих пор я пытался добавить пользовательский столбец в файл 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.
Любые намеки на то, что я делаю неправильно или чего не хватает?
Решение
Обновление . В современных версиях Fiddler вы можете просто щелкнуть правой кнопкой мыши заголовки столбцов, выбрать " Настроить столбцы " и добавьте Разное
> Столбец Размер запроса
.
В зависимости от ваших потребностей, это может быть не совсем то, что вы хотите сделать, потому что оно показывает только длину тела запроса и не включает размер заголовков.
Вот улучшенная версия:
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();
}
Другие советы
Хорошо, я знал, что не за горами. Вот ответ на мой вопрос.
Этот сценарий, помещенный в 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;
}