web-dev-qa-db-fra.com

C # Proxy de contrôle WebBrowser

Comment implémenter le proxy dans le contrôle/composant WebBrowser C #.

Ce que je veux savoir, c'est comment implémenter le proxy, alors mon contrôle WebBrowser C # utilise ce proxy pour la navigation lorsque son exécution.

Je ne veux pas non plus changer de proxy par le registre ... parce que cela affecte ma navigation normale ...

19
xhah730
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;
            }
        }

Vous devrez jouer avec un peu avec cela, mais j'ai pu parcourir le site.

Ou vous pouvez essayer de modifier le paramètre webrquest.defaultwebProxy: http://msdn.microsoft.com/en-us/library/system.net.webrequest.defaultwebproxy.aspx

15
Nick Bray