在C#中,如何在显示网站之前获取网站的HTML内容?

在C#中,如何在显示网站之前获取网站的HTML内容?,c#,html,browser,web,C#,Html,Browser,Web,我在C#中有一个web浏览器项目,我正在考虑这样的系统;当用户写入url然后单击“go”按钮时,我的浏览器会获取已写入网站的内容(它不应该访问该页面,我的意思是它不应该显示任何内容),然后我想为ex查找特定的“关键字”;如果存在“暴力”,我可以将浏览器导航到带有警告的本地页面。简而言之,在C#中,我如何在访问网站之前获取网站的内容 对不起我的英语, 提前谢谢 您必须使用WebRequest和WebResponse来加载站点: 例如: string GetPageSource (string ur

我在C#中有一个web浏览器项目,我正在考虑这样的系统;当用户写入url然后单击“go”按钮时,我的浏览器会获取已写入网站的内容(它不应该访问该页面,我的意思是它不应该显示任何内容),然后我想为ex查找特定的“关键字”;如果存在“暴力”,我可以将浏览器导航到带有警告的本地页面。简而言之,在C#中,我如何在访问网站之前获取网站的内容

对不起我的英语,
提前谢谢

您必须使用WebRequest和WebResponse来加载站点:

例如:

string GetPageSource (string url)
{
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);
webrequest.Method = "GET";
HttpWebResponse webResponse = (HttpWebResponse)webrequest.GetResponse();
string responseHtml;
using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()))
{
    responseHtml = responseStream.ReadToEnd().Trim();
}

return responseHtml;
}

之后,您可以检查responseHtml中的一些关键字。。。例如,对于RegEx.

您必须使用WebRequest和WebResponse来加载站点:

例如:

string GetPageSource (string url)
{
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);
webrequest.Method = "GET";
HttpWebResponse webResponse = (HttpWebResponse)webrequest.GetResponse();
string responseHtml;
using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()))
{
    responseHtml = responseStream.ReadToEnd().Trim();
}

return responseHtml;
}
之后,您可以检查responseHtml中的一些关键字。。。例如,使用正则表达式。

:


您可以发出HTTP请求(通过到站点)并解析结果以查找各种关键字。然后,您可以决定是否在那里以可视方式“导航”用户


有一个在线开发中心可能会有所帮助。

您可以发出HTTP请求(通过网站)并解析结果,查找各种关键字。然后,您可以决定是否在那里以可视方式“导航”用户


有一个在线开发中心可能会有所帮助。

在C#或任何其他语言中都无法做到这一点。这就像要求在不读取文件的情况下获取文件的内容。您似乎想要的是有一个代理服务器,可以重定向到某些已检查的内容。@Oded如果我读对了,这更像是要求获取文件的内容而不在文本编辑器中打开它们。@delnan-我发现问题不清楚。如果OP想要将浏览器重定向到另一个页面(如果浏览器试图访问的页面上存在某些内容),则有现有的解决方案-使用代理。问题已解决。。非常感谢大家,我没有尝试过Hall72215和Jim O'Neil的解决方案,他们可能是正确的,但Giesi的解决方案解决了我的问题。但是要确保你的url以“http://”开头,你不能用C#或任何其他语言。这就像要求在不读取文件的情况下获取文件的内容。您似乎想要的是有一个代理服务器,可以重定向到某些已检查的内容。@Oded如果我读对了,这更像是要求获取文件的内容而不在文本编辑器中打开它们。@delnan-我发现问题不清楚。如果OP想要将浏览器重定向到另一个页面(如果浏览器试图访问的页面上存在某些内容),则有现有的解决方案-使用代理。问题已解决。。非常感谢大家,我没有尝试过Hall72215和Jim O'Neil的解决方案,他们可能是正确的,但Giesi的解决方案解决了我的问题。但请确保您的url以“http://”开头,我刚刚意识到我是在Windows应用商店应用程序的上下文中回答这个问题的,但在更广泛的情况下仍然适用。我刚刚意识到我是在Windows应用商店应用程序的上下文中回答这个问题的,但在更广泛的情况下仍然适用。首先非常感谢,我的代码是这样的;字符串url=urlComboBox.Text;字符串html=GetPageSource(url);如果(html.Contains(“暴力”){MessageBox.Show(“此处禁止”,“Opps!!!”);getCurrentBrowser().Navigate(@“W:\yasak.html”);}其他{getCurrentBrowser().Navigate(urlComboBox.Text);}但在你的方法的第一行。。它在…Create(url)中给出了“未知URI格式”;你的代码成功了!非常感谢@Giesi,我只是忘了在url前面添加“http://”标记。然后它工作得很好。。非常感谢你……:)没问题。。。这就是我们在这里的原因;)首先非常感谢,我的代码是这样的;字符串url=urlComboBox.Text;字符串html=GetPageSource(url);如果(html.Contains(“暴力”){MessageBox.Show(“此处禁止”,“Opps!!!”);getCurrentBrowser().Navigate(@“W:\yasak.html”);}其他{getCurrentBrowser().Navigate(urlComboBox.Text);}但在你的方法的第一行。。它在…Create(url)中给出了“未知URI格式”;你的代码成功了!非常感谢@Giesi,我只是忘了在url前面添加“http://”标记。然后它工作得很好。。非常感谢你……:)没问题。。。这就是我们在这里的原因;)