C#webrequest或webclient问题

时间:2011-05-17 13:18:06

标签: c# webrequest

我正在我的应用程序中实现一个论坛板。 该页面随webrequest对象一起下载,然后将其应用于Web浏览器控件的文档文本(必须通过webrequest访问该页面),并且缺少元素和普通广告。我该如何解决这个问题?

这是我正在使用的功能:

        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(“page”,“ip:port:username:password”,ref demoBrowser)

1 个答案:

答案 0 :(得分:0)

我会从your other question引用自己,因为在不处理代理时它非常有意义:

这里的问题是,您通过WebRequest收到的HTML包含当前上下文中不存在的CSS文件的相对路径。您可以通过在以下部分添加以下标记来修改HTML:

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

之后,WebBrowser控件将解析此标记中域的相对CSS路径。