Come visualizzare le dimensioni di una richiesta HTTP in Fiddler?
-
06-07-2019 - |
Domanda
Vorrei visualizzare la dimensione di ogni richiesta nell'elenco delle sessioni di violinista. Quello che ho provato finora, è stato quello di aggiungere una colonna personalizzata nel file 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 "?";
}
Ma questo provoca un errore quando il violinista tenta di caricare lo script.
Se cambio linea con il commento a questo:
return typeof(oS.requestBodyBytes.Length);
quindi il violinista visualizza 'numero' nella colonna RequestSize. Per questo motivo credo di non essere molto lontano da ciò che sto cercando di ottenere. Non riesco proprio a capire come visualizzare la dimensione del campo requestBodyBytes.
Qualche suggerimento su cosa sto facendo di sbagliato o cosa manca?
Soluzione
Aggiorna Nelle versioni moderne di Fiddler, puoi semplicemente fare clic con il pulsante destro del mouse sulle intestazioni delle colonne, scegliere " Personalizza colonne " e aggiungi il Varie
> colonna Request Size
.
A seconda delle tue esigenze, potrebbe non essere proprio quello che vuoi fare, perché mostra solo la lunghezza del corpo della richiesta e non include la dimensione delle intestazioni.
Ecco una versione migliorata:
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();
}
Altri suggerimenti
OK, sapevo di non essere lontana. Ecco la risposta alla mia domanda.
Questo script, quando inserito in CustomRules.js, stamperà la lunghezza / dimensione della richiesta HTTP in fiddler:
public static BindUIColumn("Req-Length")
function CalcMethodCol(oS: Session){
if (null != oS.oRequest)
return oS.requestBodyBytes.LongLength.ToString();
else
return String.Empty;
}