HttpRequest 和HttpWebRequest的区别
【1】问题:
asp.NET C# 中HttpRequest 和HttpWebRequest的区别
HttpRequest 与HttpWebRequest 有什么区别?
网上中文的帖子很多,但是答案基本是拷贝MSDN的。
这个比较扯淡,看了半天还是没看出区别。
两者都是Http请求。
我们先来看看网上的答案。
【2】网上中文答案:
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
资源的应用程序,而不必考虑各种不同协议的具体细节。
【3】核心区别
两者看起来都是Http请求,只是前者需要在ASP。NET上下文中使用。
实际是不是这样的?
其实这也只是表象,最根本的区别在于:
- System.Web.HttpRequest:Incoming,进入请求,也就是客户端访问ASP.NET 网站进入时的请求。所以只能在ASP.NET应用程序上下文里使用。
- System.Net.HttpWebRequest:OutGoing,外发请求,可以发出一个HTTP请求,它可以干的活,就比较多了,可以模拟一个独立的客户端,向网站发送请求。
HttpRequest 和HttpWebRequest的区别的更多相关文章
- .net学习笔记----HttpRequest,WebRequest,HttpWebRequest区别
WebRequest是一个虚类/基类,HttpWebRequest是WebRequest的具体实现 HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所 ...
- WebRequest/HttpWebRequest/HttpRequest/WebClient/HttpClient的区别
1.WebRequest和HttpWebRequest WebRequest 的命名空间是: System.Net ,它是HttpWebRequest的抽象父类(还有其他子类如FileWebReque ...
- C#,WebRequest类、HttpWebRequest类与HttpRequest类的区别
C#,WebRequest类和HttpWebRequest类的区别? httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRe ...
- Http下的各种操作类.WebApi系列~通过HttpClient来调用Web Api接口
1.WebApi系列~通过HttpClient来调用Web Api接口 http://www.cnblogs.com/lori/p/4045413.html HttpClient使用详解(java版本 ...
- HttpRequest,WebRequest,HttpWebRequest,WebClient,HttpClient 之间的区别
HttpRequest,WebRequest,HttpWebRequest,WebClient,HttpClient 今天我们来聊一下他们之间的关系与区别. HttpRequest 类 .NET Fr ...
- HttpWebRequest类与HttpRequest类的区别
HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等. HttpWebR ...
- HttpWebRequest和WebClient的区别
HttpWebRequest和WebClient的区别(From Linzheng): 1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Creat ...
- $Django 虚拟环境,2.0、1.0路由层区别,Httprequest对象,视图层(fbv,cbv),文件上传
1 虚拟环境:解决问题同一台机器上可以运行不同版本的django, 1 用pychanrm创建--->files-->newproject--->选择虚拟环境 2 setting ...
- WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择
NETCore提供了三种不同类型用于生产的REST API: HttpWebRequest;WebClient;HttpClient,开源社区创建了另一个名为RestSharp的库.如此多的http库 ...
随机推荐
- [LeetCode] Subsets I (78) & II (90) 解题思路,即全组合算法
78. Subsets Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a ...
- How to Validate XML using Java
Configure Java APIs (SAX, DOM, dom4j, XOM) using JAXP 1.3 to validate XML Documents with DTD and Sch ...
- mysql查询随机几条数据(速度快)
MySql查询随机几条数据 想到了 Max RAND 这几个函数 用以下2种办法都可以实现查询. 速度还行. 几十万数据左右, 没有什么问题. SELECT * FROM `news` WHERE i ...
- git 远程 强制合并本地
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下: git reset --hard git pull
- Linux发送监控指标到内部邮箱
数据库的健康监控是个很重要的工作.重要的指标\KPI监控结果会有专门的採集.监控.告警系统来做相关事情. 而一些不是很重要的或者还在设计和调试阶段的相关指标,我仅仅是想发送到我自己邮箱,本文就针对在s ...
- myecipse的debug调试操作方法
在myecipse如果想要查询某个变量的值,或者跟踪程序的执行流程,可以如下操作: 首先在程序中设置好断点(断点的设置方法,就是在想要设置的地方的行首双击,当一个蓝色的圆形实心图标显示出来,就证明你设 ...
- [iOS 开发] Xcode常见报错及解决办法
报错一: 在iOS7的真机运行时,弹出错误:App installation failed. There was an internal API error. 如图 解决办法: 在Xcode -> ...
- TCP/IP 协议理解
TCP/IP 协议(Transmission Control Protocol / internet Protocol),因特网互联协议,又名网络通讯协议.通俗而言:TCP负责发现传输的问题,一有问题 ...
- Table显示滚动条
Table显示滚动条,要先把table放到一个div中,div的长度和宽度要固定,控制overflow属性为scroll <div style="width:700px; height ...
- 自己写的SqlHelper
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...