2009-05-06 11 views
7

Mi piacerebbe visualizzare la dimensione di ogni richiesta nella lista di sessione del violinista. Quello che ho provato finora, è stato quello di aggiungere una colonna personalizzata nel file CustomRules.js:Come visualizzare la dimensione di una richiesta HTTP in Fiddler?

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 si traduce in un errore quando violinista tenta di caricare lo script.

Se cambio la linea con il commento a questa:

return typeof(oS.requestBodyBytes.Length); 

poi violinista visualizza 'numero' nella colonna RequestSize. Per questo credo di non essere molto lontano da quello che sto cercando di ottenere. Non riesco proprio a capire come visualizzare la dimensione del campo requestBodyBytes.

Qualche suggerimento su cosa sto facendo male o cosa manca?

risposta

7

Aggiornamento Nelle versioni moderne di Fiddler, si può semplicemente fare clic destro la colonna intestazioni, scegli "Personalizza colonne" e aggiungi la colonna Miscellaneous>Request Size.


A seconda delle esigenze, che potrebbe non essere realmente ciò che si vuole 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(); 
} 
+0

Grazie per questa soluzione. – M4N

+0

testato in fiddler 2.3.9.1beta -> requestBodyBytes.LongLength diventa requestBodyBytes.Length –

+1

LongLength e Length restituiscono la stessa cosa. – EricLaw

4

OK, sapevo che non ero lontano. Ecco la risposta alla mia domanda.

Questo script, quando sia messo in CustomRules.js, stamperà la lunghezza/dimensioni di richiesta HTTP in violinista:

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