继承区别:
HttpWebRequest 派生自 WebRequestHttpWebResponse 派生自 WebResponseWebClient 派生自 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 类的实例,而协议特定的子类则执行请求的具体细节,编程中使用的是子类HttpWebRequest2、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属性)更新中.....
WebClient和HttpWebRequest区别
最新推荐文章于 2024-08-02 23:29:18 发布