2016-09-14 15 views
0

나는 Fiddlercore를 사용하여 루프 내에서 동시에 여러 URL을 캡처합니다.C# WebBrowser in 루프 및 Fiddlercore

예 :

private void button1_Click(object sender, EventArgs e) 
{ 
    // I have 2 url 
    string arr = new string[]{ url1, url2 }; 
    foreach(var url in arr) 
    { 
     new Webbrowser().Navigate(url); 
    } 

    Fiddler.FiddlerApplication.AfterSessionComplete 
     += new Fiddler.SessionStateHandler(FiddlerApplication_AfterSessionComplete); 
    } 

    // I will catch 2 oSession contain same string "a/b/c" in 2 URL from 2 Webbrowser in loop 
    int Count = 0; 
    void FiddlerApplication_AfterSessionComplete(Fiddler.Session oSession) 
    { 
     if(oSession.fullUrl.contain("a/b/c")) 
     { 
      Count+= 1; 
      richtextbox1.AppendText("oSession.fullUrl" + "\n"); 
     } 

     if(Count == 2) 
     { 
      Count = 0; 
      StopFiddler(); 
     } 
    } 

void StopFiddler() 
{ 
    Fiddler.FiddlerApplication.AfterSessionComplete 
     -= new Fiddler.SessionStateHandler(FiddlerApplication_AfterSessionComplete); 
} 

이 작동하지만 문제가있다. Fiddlercore는 캡처 세션을 중지하지만 웹 브라우저는 멈추지 않고 계속로드됩니다.

내가 원하는 것을 얻은 후 WebBrowser가로드되지 않게하는 방법.

답변

0

WebBrowser.Stop()을 사용하면 모든로드를 중지 할 수 있습니다.

보류중인 탐색을 취소하고 배경 사운드 및 애니메이션과 같은 동적 페이지 요소를 중지합니다.

편집 :는 또한, 당신은 당신이 실제로 그들을 위해 Stop 메소드를 호출 할 수 있도록, 당신이 만드는 그 웹 브라우저 컨트롤에 대한 참조를 저장해야합니다. 당신이 지금 그것을 사용하는 방식은 아주 이상하며 문제를 일으킬 수 있습니다. (사실 그것은 이미 문제를 일으켰습니다).

+0

WebBrowser.Stop()을 다음과 같이 선언하면 어떻게 사용할 수 있습니까? new Webbrowser(). Navigate (url); –