C # WebBrowser Control Proxy - PullRequest
       26

C # WebBrowser Control Proxy

18 голосов
/ 27 января 2012

Как реализовать Proxy в C # элемент управления WebBrowser / Component.

Я хочу знать, как реализовать прокси, поэтому мой элемент управления C # webBrowser использует этот прокси для просмотра при запуске.

Я также не хочу менять прокси через реестр ... потому что это влияет на мой обычный просмотр ...

1 Ответ

15 голосов
/ 27 января 2012
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;
            }
        }

Вам придется немного поиграть с ним, но я смог просмотреть сайт.

Или вы можете попробовать изменить параметр WebRequest.DefaultWebProxy: http://msdn.microsoft.com/en-us/library/system.net.webrequest.defaultwebproxy.aspx

...