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属性)更新中.....相关文章推荐
- webrequest、httpwebrequest、webclient、HttpClient 四个类的区别?
- HttpWebRequest和WebClient的区别
- WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择
- webclient 和HttpWebRequest采集的区别
- HttpRequest,WebRequest,HttpWebRequest,WebClient,HttpClient 之间的区别
- .net学习笔记----HttpRequest,WebRequest,HttpWebRequest区别
- 【转载】C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
- HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
- 用HttpWebRequest代替WebClient解决POST超时问题
- Linux中用HttpWebRequest或WebClient访问远程https路径
- Loadrunner Http协议web_submit_data与web_custom_request区别
- httpWebRequest获取流和WebClient的文件抓取
- 使用WebClient或HttpWebRequest模拟上传文件和数据
- HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
- WebClient HttpWebRequest从网页中获取请求数据
- webclientt和httpwebrequest
- 使用WebClient 或者 HttpWebRequest均报:"The Remote name can't be solved"
- 【资料】WebRequest 和 HttpWebRequest 区别
- 使用WebClient或HttpWebRequest模拟上传文件和数据
- C#获取网页内容 (WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)