Comment afficher la taille d'une requête HTTP dans Fiddler?
-
06-07-2019 - |
Question
Je voudrais afficher la taille de chaque demande dans la liste des sessions de fiddler. Ce que j’avais essayé jusqu’à présent, c’était d’ajouter une colonne personnalisée dans le fichier 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 "?";
}
Mais cela entraîne une erreur lorsque Fiddler tente de charger le script.
Si je change la ligne avec le commentaire en ceci:
return typeof(oS.requestBodyBytes.Length);
puis fiddler affiche "numéro" dans la colonne RequestSize. À cause de cela, je suppose que je ne suis pas très loin de ce que j'essaie de réaliser. Je n'arrive pas à comprendre comment afficher la taille du champ requestBodyBytes.
Avez-vous des indices sur ce que je fais mal ou sur ce qui manque?
La solution
Mettre à jour Dans les versions modernes de Fiddler, il vous suffit de cliquer avec le bouton droit de la souris sur les en-têtes de colonne, de choisir "Personnaliser les colonnes". et ajoutez le Divers
> Colonne Taille de la demande
.
En fonction de vos besoins, il se peut que ce ne soit pas vraiment ce que vous souhaitiez faire, car il indique uniquement la longueur du corps de la demande et n'inclut pas la taille des en-têtes.
Voici une version améliorée:
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();
}
Autres conseils
OK, je savais que je n'étais pas loin. Voici la réponse à ma question.
Ce script, une fois placé dans CustomRules.js, affichera la longueur / taille de la requête HTTP dans le violoneur:
public static BindUIColumn("Req-Length")
function CalcMethodCol(oS: Session){
if (null != oS.oRequest)
return oS.requestBodyBytes.LongLength.ToString();
else
return String.Empty;
}