C # веб-запрос или проблема веб-клиента - PullRequest
0 голосов
/ 17 мая 2011

Я внедряю форумную платформу в свое приложение. Страница загружается с объектом веб-запроса, затем применяется к тексту документа элемента управления веб-браузера (необходимо получить доступ к странице через веб-запрос), и отсутствуют элементы и обычные рекламные объявления. как я могу это исправить?

Я использую эту функцию:

        private void Navigate(string url, string credentials, ref WebBrowser wbBrowser)
        {
            WebRequest req;

            WebProxy proxy;

            WebResponse response;

            StreamReader sr;

            int index;

            string  username,
                    password,
                    ipAddress,
                    temp;


            index = 0;

            try
            {
                for (int i = 0; i < 2; i++)
                    index = credentials.IndexOf(':', index + 1);

                if (index != -1)
                {
                    ipAddress = credentials.Remove(index, credentials.Length - index);

                    temp = credentials.Remove(0, index + 1);

                    index = temp.IndexOf(':');

                    username = temp.Remove(index, temp.Length - index);
                    password = temp.Remove(0, index + 1);

                    proxy = new WebProxy(ipAddress, true);
                    proxy.Credentials = new NetworkCredential(username, password);

                    req = WebRequest.Create(url);
                    req.Proxy = proxy;

                    response = req.GetResponse();


                    sr = new StreamReader(response.GetResponseStream());

                    temp = sr.ReadToEnd();

                    index = temp.IndexOf("<head>");

                    if (index != -1)
                        temp = temp.Insert(index + 6, "<base href=\"" + url + " \" />");

                    mainDocument = null;

                    wbBrowser.DocumentText = temp;

                    while (mainDocument == null)
                        Thread.Sleep(250);
                }
            }
            catch (Exception x)
            {
                MessageBox.Show(x.ToString());
            }
        }

Я использую его как Navigate ("страница", "ip: порт: имя пользователя: пароль", ref demoBrowser)

1 Ответ

0 голосов
/ 17 мая 2011

Я процитирую себя из вашего другого вопроса , потому что это имеет смысл, когда не имеет дело с прокси:

Что ж, проблема в том, что HTML, полученный вами через WebRequest, содержит относительные пути к файлам CSS, которых нет в текущем контексте. Вы можете изменить HTML, добавив в раздел следующий тег:

<base href="http://domainname.com/" />

После этого элемент управления WebBrowser разрешает относительные пути CSS к домену в этом теге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...