2009-05-06 28 views
7

Tôi muốn hiển thị kích thước của từng yêu cầu trong danh sách phiên của người chơi. Những gì tôi đã cố gắng cho đến nay, là thêm cột tùy chỉnh vào tệp CustomRules.js:Cách hiển thị kích thước của yêu cầu HTTP trong Fiddler?

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

Nhưng điều này dẫn đến lỗi khi người cố gắng tải tập lệnh.

Nếu tôi thay đổi phù hợp với những nhận xét như thế này:

return typeof(oS.requestBodyBytes.Length); 

sau đó hiển thị cáy 'số' trong cột RequestSize. Bởi vì điều đó tôi đoán rằng tôi không phải là rất xa những gì tôi đang cố gắng để đạt được. Tôi chỉ không thể tìm ra cách hiển thị kích thước của trường requestBodyBytes.

Bất kỳ gợi ý nào tôi đang làm sai hoặc thiếu gì?

Trả lời

7

Cập nhật Trong các phiên bản hiện đại của Fiddler, bạn có thể chỉ đơn giản là click chuột phải vào cột tiêu đề, chọn "Tùy chỉnh cột" và thêm cột Miscellaneous>Request Size.


Tùy theo nhu cầu của bạn, đó có thể không thực sự là những gì bạn muốn làm, vì nó chỉ hiển thị độ dài của phần thân yêu cầu và không bao gồm kích thước của tiêu đề.

Dưới đây là một phiên bản cải tiến:

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

Cảm ơn cho giải pháp đó. – M4N

+0

thử nghiệm trong fiddler 2.3.9.1beta -> requestBodyBytes.LongLength trở thành requestBodyBytes.Length –

+1

LongLength và Length trả về cùng một điều. – EricLaw

4

OK, tôi biết tôi không ở xa. Đây là câu trả lời cho câu hỏi của tôi.

kịch bản này, khi đưa vào CustomRules.js, sẽ in theo chiều dài/kích thước của yêu cầu HTTP trong cáy:

public static BindUIColumn("Req-Length") 
function CalcMethodCol(oS: Session){ 
    if (null != oS.oRequest) 
      return oS.requestBodyBytes.LongLength.ToString(); 
     else 
      return String.Empty; 
} 
Các vấn đề liên quan