首页  ·  知识 ·  编程语言
不同的WebClient类和WebRequest类
佚名  http://cnp.blog.ccidnet.com/  .NET  编辑:dezai  图片来源:网络
用WebClient类实现 PageUrl = UrlText.Text; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; By
用WebClient类实现
PageUrl = UrlText.Text;
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;

Byte[] pageData = wc.DownloadData(PageUrl);
ContentHtml.Text = Encoding.Default.GetString(pageData);

用WebRequest类实现
PageUrl = UrlText.Text;
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
sr.Close();

这两段代码实现同样功能,区别在哪里? WebRequest类
命名空间: System.Net

发出对统一资源标识符 (URI) 的请求。这是一个抽象(在 Visual Basic 中为 MustInherit)类。
WebRequest 是 .NET Framework 的用于访问 Internet 数据的请求/响应模型的抽象(在 Visual Basic 中为 MustInherit)基类。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据。在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。

请求从应用程序发送到某个特定的 URI,如服务器上的 Web 页。URI 从一个为应用程序注册的 WebRequest 子代列表中确定要创建的适当子类。注册 WebRequest 子代通常是为了处理某个特定的协议(如 HTTP 或 FTP),但是也可以注册它以处理对特定服务器或服务器上的路径的请求。

WebClient 类:
提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。不能继承此类。
WebClient 类提供向 URI 标识的任何本地、Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法。

WebClient 类使用 WebRequest 类提供对 Internet 资源的访问。WebClient 实例可以通过任何已向 WebRequest.RegisterPrefix 方法注册的 WebRequest 子代访问数据。
详细的,查看一下msdnnull WebClient 不支持超时设定,这一点太糟糕了。因此选用HttpWebRequest代替WebClient : HttpWebRequest毕竟是WebClient 的父类,因此POST起来比较麻烦。 try { string valpairs=""; valpairs="c="+textBox1.Text; UTF8Encoding encoding=new UTF8Encoding(); b = encoding.GetBytes(valpairs); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/t/default.aspx"); request.Timeout=1000*5; request.Method = "POST"; request.ContentType="application/x-www-form-urlencoded"; request.ContentLength=b.Length;
本文作者:佚名 来源:http://cnp.blog.ccidnet.com/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读