2009-05-06 1 views
7

각 요청의 크기를 피 들러의 세션 목록에 표시하고 싶습니다.Fiddler에서 HTTP 요청의 크기를 표시하는 방법은 무엇입니까?

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

그러나 피들러 스크립트를로드 할 때이 오류가 발생합니다 내가 지금까지 시도하면 CustomRules.js 파일에서 사용자 지정 열을 추가했다.

나는이에 주석으로 라인을 변경하는 경우 :

return typeof(oS.requestBodyBytes.Length); 

다음 RequestSize 열에 피들러 표시 '수'. 그 때문에 나는 내가 달성하려고 노력하는 것에서 그리 멀지 않은 것으로 생각합니다. 난 그냥 requestBodyBytes 필드의 크기를 표시하는 방법을 알아낼 수 없습니다.

내가 잘못하고있는 것이 있거나 누락 된 것이 있습니까?

답변

7

업데이트을 피들러의 현대적인 버전에서는, 당신은 단순히 열을 마우스 오른쪽 단추로 클릭 "Customize Columns"를 선택하고 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(); 
} 
+0

감사합니다. – M4N

+0

은 피들러에서 테스트되었습니다. 2.3.9.1beta -> requestBodyBytes.LongLength는 requestBodyBytes가됩니다 .Length –

+1

LongLength와 Length는 똑같은 것을 반환합니다. – EricLaw

4

좋아, 나는 멀지 않았 음을 알았다. 여기 내 질문에 대한 답변입니다. CustomRules.js에 넣을 때

이 스크립트, 피들러에서 HTTP 요청의 길이/크기를 출력합니다 :

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