2012-05-03 18 views
1

我正在寫一個自定義提琴手檢查器(從Inspector2繼承並實現IResponseInspector2),並且我希望在檢查器的輸出中顯示的一件事是它花費的時間用於從服務器返回的響應(相對於從客戶端發送相應請求的時間)。如何獲得自定義提琴手檢查員的轉移時間

我基本上希望用戶看看請求花了多長時間,而不必切換到時間軸視圖。

有誰知道是否有辦法做到這一點?

回答

0

好的 - 我找到了一種方式,但它似乎有點哈克 - 也許有更好的方法。

Session[] sessions = FiddlerApplication.UI.GetSelectedSessions(); 
if (sessions != null && sessions.Length == 1) 
{ 
    Session s = sessions[0]; 
    if (s != null && (s.state == SessionStates.Done)) 
    { 
     TimeSpan totalTime = s.Timers.ClientDoneResponse - s.Timers.ClientBeginRequest; 
     Debug.WriteLine("Time = " + totalTime.ToString()); 
    } 
} 

我想我需要一個更優雅的方式來獲得與檢驗員正在處理的響應相關的Session

+1

這個複雜的主題在即將推出的Fiddler書籍中有很好的介紹。簡而言之,您應該重寫Inspector2實現上的虛擬AssignSession功能。在這方面,您將使用提供的會話來設置檢查器的標題和正文屬性,並且可以保留對會話對象的引用,以便查看定時器等。 – EricLaw

+0

謝謝Eric - Fiddler真棒! – RobSiklos

1

in FilderScript找到變量m_ShowTTLB和m_ShowTimestamp並將其全部設置爲true。 將結果顯示在自定義列中

// Show the duration between the start of Request.Send and Response.Completed in Milliseconds 
    public static RulesOption("&Show Time-to-Last-Byte", "Per&formance") 
    var m_ShowTTLB: boolean = true; 

    // Show the time of response completion 
    public static RulesOption("Show Response &Timestamp", "Per&formance") 
    var m_ShowTimestamp: boolean = true;