2012-01-27 15 views
15

Jak zaimplementować proxy w C# WebBrowser control/Component.C# WebBrowser Control Proxy

Co chcę wiedzieć, to jak zaimplementować proxy, więc moja kontrolka C# webBrowser używa tego proxy do przeglądania podczas jego uruchamiania.

Ja też nie chce zmienić proxy poprzez rejestr ... bo to wpływa na normalne przeglądanie ...

+0

możliwe duplikat [Jak ustawić proxy dla Webbrowser Kontroli bez wpływu na system/IE proxy] (http://stackoverflow.com/questions/2499568/how-to-set-a-proxy-for-webbrowser-control-without-effecting-the-system-ie-proxy) –

Odpowiedz

13
private Uri currentUri; 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      currentUri = new Uri(@"http://www.stackoverflow.com"); 
      HttpWebRequest myRequest = (HttpWebRequest) HttpWebRequest.Create("http://www.stackoverflow.com"); 
      //WebProxy myProxy = new WebProxy("208.52.92.160:80"); 
      //myRequest.Proxy = myProxy; 

      HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 

      webBrowser1.DocumentStream = myResponse.GetResponseStream(); 

      webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(webBrowser1_Navigating); 
     } 

     void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) 
     { 
      if (e.Url.AbsolutePath != "blank") 
      { 
       currentUri = new Uri(currentUri, e.Url.AbsolutePath); 
       HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(currentUri); 

       HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 

       webBrowser1.DocumentStream = myResponse.GetResponseStream(); 
       e.Cancel = true; 
      } 
     } 

Musisz grać z nim trochę, ale udało mi się przeglądaj stronę.

Albo można spróbować modyfikując ustawienia WebRequest.DefaultWebProxy: http://msdn.microsoft.com/en-us/library/system.net.webrequest.defaultwebproxy.aspx

+0

Co wtedy? Przechwytywanie wszystkich zdarzeń nawigacyjnych, aby ponownie użyć swojego 'HttpWebRequest'? –

+2

Nie sądzę, że możesz ustawić WebRequest.DefaultWebProxy, ale możesz przechwycić to samodzielnie i stworzyć własną nawigację. –

+1

dziękuję ... bardzo przydatne dla mnie – xhah730

Powiązane problemy