我正在我的应用程序中实现一个论坛板。 该页面随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)
答案 0 :(得分:0)
我会从your other question引用自己,因为在不处理代理时它非常有意义:
这里的问题是,您通过WebRequest收到的HTML包含当前上下文中不存在的CSS文件的相对路径。您可以通过在以下部分添加以下标记来修改HTML:
<base href="http://domainname.com/" />
之后,WebBrowser控件将解析此标记中域的相对CSS路径。