文件名称:通过Internet搜索网络资源-effective.debugging.2016.7
文件大小:8.09MB
文件格式:PDF
更新时间:2024-06-23 11:46:52
C#网络应用
7.3 通过Internet搜索网络资源 Internet 网络资源非常丰富,几乎涉及到日常生活和研究的各个方面。流行的搜索引擎像 Google、百度、雅虎等都能完成快速搜索网络资源的功能。本节我们将学习用 C#实现这些功 能的基本思路。 在 System.Net 命名空间中,有一个 WebClient 类,该类提供向 URI 标识的任何本地、Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法。 URI 的意思是统一资源标识符,.NET 框架使用 URI 来标识所请求的 Internet 资源和通信 协议。URI 由四部分组成:协议标识符、服务器标识符、路径标识符和可选的查询字符串。其 中协议标识符标识用于请求和响应的通信协议;服务器标识符由域名系统(DNS)主机名或 TCP 地址组成,用于惟一标识 Internet 上的服务器;路径标识符用于在服务器上定位请求的信 息;查询字符串用于将信息从客户端传送到服务器。 例如,“http://www.contoso.com/whatsnew.aspx?date=today”就是由协议标识符“http”、服 务器标识符“www.contoso.com”、路径“whatsnew.aspx”和查询字符串“?date=today”组成的。 服务器接收到请求并对响应进行了处理之后,就将该响应返回到客户端应用程序。由于响应中 包括了像原始文本或 XML 数据等相关信息,因此我们就可以从这些信息中查询需要的文本字 符串、图片等内容。 通过 WebClient 类从 Web 站点下载文件有两种方式,一种是直接保存为本地文件,另一 种是通过流进行读取,具体采用哪种方式要视情况而定。 如果要保存成本地文件,可以使用 DownloadFile 方法。该方法有两个参数,一个是 URI, 即统一资源标识符;另一个是本地保存路径。例如: using System.Net; …… WebClient myWebClient = new WebClient(); myWebClient.DownloadFile("http://military.china.com/zh_cn/", "C:\\test.htm"); 如果应用程序需要处理从 Web 站点检索到的数据,可以使用 OpenRead 方法,这个方法 返回一个 Stream 引用。然后就可以从数据流中读取数据了。例如: using System.Net; using System.IO; …… WebClient webClient = new WebClient(); Stream myStream = webClient.OpenRead("http://news.sohu.com"); StreamReader sr = new StreamReader(myStream); string httpSource = sr.ReadToEnd(); 也可以使用 DownloadString 方法,直接读取包含网页源代码的字符串内容。例如: using System.Net; …… WebClient webClient = new WebClient(); string httpSource = webClient.DownloadString("http://news.sohu.com"); 这种方法得到的结果与使用流读取得到的结果相同。 【例 7-4】设计一个简单的搜索程序,能读取指定网址的源文件,并能用正则表达式搜索 包含的超链接与图片。 175