您的位置:首页 > 理论基础 > 计算机网络

WebClient和HttpWebRequest区别

2014-01-29 14:47 555 查看

继承区别:

HttpWebRequest 派生自 WebRequest
HttpWebResponse 派生自 WebResponse
WebClient 派生自 Component
三个类的声明如下:
[SerializableAttribute]
public class HttpWebRequest : WebRequest, ISerializable
[SerializableAttribute]
public class HttpWebResponse : WebResponse, ISerializable
[ComVisibleAttribute(true)]
public class WebClient : Component
也就是说WebClient在继承关系上和 HttpWebRequest没有啥关系

功能区别:

1、WebRequest是 .NET Framework 的用于访问 Internet 数据的请求/响应模型的抽象基类。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据,在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节,编程中使用的是子类HttpWebRequest
2、WebClient 类提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法,提供向 URI 标识的任何本地、Intranet
或 Internet 资源发送数据以及从这些资源接收数据的公共方法,WebClient 类使用 WebRequest 类提供对 Internet 资源的访问
也就是说功能大致向同行,WebClient用来上传或下载数据,WebRequest用来请求服务器的监听,WebResponse获取服务器端的响应

对COOKIE和SEIION支持区别

WebClient不具持续性,因此不支持cookie和session,具体说来就是,常见的管理系统中,一般都有登录页和管理页,在登陆页输入用户名和密码,在管理页显示登录页输入的用户名,但是,WebClient实现不了这样的效果,在第一次请求登录页时,验证成功之后,WebClient不会保存http响应报文中的SetCookie,更不会设置下一次http请求报文的Cookie,因此跳转到管理页后,在管理页时接收不到存相应的cookie,因此,webclient更适用于多次请求没有联系的请求,而WebRequest则相反

用户对是否自动url转向的控制

WebClient不支持
WebRequest支持(HttpWebRequest有AllowAutoRedirect属性)

对用户代理服务器的支持

WebClient不支持 WebRequest支持(HttpWebRequest有UserAgent属性)更新中.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: