C#,WebRequest类和HttpWebRequest类的区别?

httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 .  

HttpWebRequest 是 WebRequest 的实例化使用,单独的 WebRequest 是不能使用的
在使用HttpWebRequest实例,我们不用使用HttpWebRequest类的构造函数,而是使用WebRequest类提供的静态方法,然后强制转换,如:
HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse();

HttpRequest 与HttpWebRequest 有什么区别

System.Web.HttpRequest是封装浏览器对服务器的请求的,主要用在ASP.NET中,其中包括浏览器请求的网址,查询字符串数据或表单数据等等 

而System.Net.HttpWebRequest则是用来简化网络请求的过程,从服务器上获取文件/结果的,譬如你可以在代码中用这个类冒充浏览器(设置一个UserAgent)来发请求,处理回应

第一:他们不是父子关系。
第二:Syste.Net.HttpWebRequest 类是System.Net.WebRequest抽象类的一个子类,它是 .NET Framework 的用于访问 Internet 数据的请求/响应模型的抽象基类。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据。在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。
System.Net.HttpWebRequest 类和System.Net.FileWebRequest都继承了WebRequest
1、FileWebRequest 类为使用 file:// 方案来请求本地文件的 URI 实现 WebRequest 抽象基类
2、HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。
第三:System.Web.HttpRequest 类使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值。HttpRequest 类的方法和属性通过 HttpApplication、HttpContext、Page 和 UserControl 类的 Request 属性公开。 所以使用System.Web.HttpRequest类的时候其实都是利用HttpApplication、HttpContext、Page 和 UserControl 类的 Request 属性。而使用System.Net.HttpWebRequest类时是为了获得一个Uri资源。自己创建。 System.Web 命名空间提供使得可以进行浏览器与服务器通信的类和接口。此命名空间包括 HttpRequest 类(用于提供有关当前 HTTP 请求的广泛信息)、HttpResponse 类(用于管理对客户端的 HTTP 输出)以及 HttpServerUtility 类(用于提供对服务器端实用工具与进程的访问)。System.Web 还包括用于 Cookie 操作、文件传输、异常信息和输出缓存控制的类。
System.Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口。WebRequest 和 WebResponse 类形成了所谓的可插接式协议的基础,可插接式协议是网络服务的一种实现,它使您能够开发出使用 Internet 资源的应用程序,而不必考虑各种不同协议的具体细节。

最新文章

  1. C语言笔记一
  2. 用rlwrap使sqlplus可以上下翻页
  3. SQL SERVER 分布式事务(DTC)
  4. JS控制HTML元素的显示和隐藏
  5. 1.python基础入门
  6. SQL Server2008 错误源:.net SqlClient data provider的解决方法
  7. 【LEETCODE OJ】Candy
  8. python中的 zip函数详解
  9. 仿网易新闻客户端头条ViewPager嵌套实例
  10. Portal:十大免费建站程序推荐
  11. SPOJ3267--D-query (树状数组离线操作)
  12. java MongoDB driver error infos
  13. res://ieframe.dll/acr_error.htm 纯手动解决方法
  14. Longest Substring Without Repeating Characters - 哈希与双指针
  15. cocos2dx手写js绑定C++
  16. CentOS 6.5系统上安装SVN服务器
  17. 20135316王剑桥Linux内核学习记笔记第七周
  18. Linux 4.21包含对AMD Rome处理器中新的Zen 2架构重要的新优化
  19. Springboot中实现策略模式+工厂模式
  20. ElasticSearch match, match_phrase, term区别

热门文章

  1. 仿netty线程池简化版本
  2. JS正则表达式从入门到入土(3)—— 范围类
  3. python windows打包
  4. centos7安装kvm环境采用网桥模式并创建虚拟机制作openstack需要的镜像
  5. git的应用
  6. MR案例:WordCount改写
  7. redis:Invalid input of type: 'bool' type. Convert to a byte,string or number first
  8. LCS最长共同子序列
  9. Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)
  10. Memcached gets 命令