我想知道有没有人能够解释下列类的区别
我想知道有没有人能够解释下列类的区别
它们有不同的作用。
WebRequest
是 HttpWebRequest
的抽象基类 - 您不能直接使用它。它是其他 *Request
类(用于 FTP、文件和其他类型的网络请求)的基类。这些类都用于从网络获取资源(文件)。
还有一个 WebClient
类 - 可能是所有设计用于从互联网检索资源的 BCL 类中最简单的。
HttpRequest
表示对 ASP.NET 应用程序中资源的请求 - 这是 Request
的 服务器端。
主要区别在于,HttpWebRequest
是 HTTP 客户端,而 HttpRequest
是 服务器端,用于在 ASP.NET Web 应用程序中使用。
WebRequest
吗? - OdedWebRequest
实例,而是继承类之一(比如 HttpWebRequest
、FtpWebRequest
等等)。 - OdedHttpWebRequest
和WebRequest
之间差异的答案。 - cregoxHttpRequest
,正如Oded already said,是完全不同的东西——它在服务器端生成HTTP请求,以便客户端(例如HttpWebRequest
)可以读取它。
现在,在HttpWebRequest
和WebRequest
之间,虽然一个只是继承自另一个,但实际上,在创建请求时使用http://
时,没有任何区别。似乎这一切都只是代码设计的问题。
要使用WebRequest
,我们需要Create
,这将返回一个派生类。只要我们使用它的实例,它就会像一个包装器一样作用于派生类。这里是remark from the docs:
WebRequest
是 .NET Framework 访问互联网数据的请求/响应模型的抽象基类。使用请求/响应模型的应用程序可以以协议不可知的方式从互联网请求数据,其中应用程序使用WebRequest
类的实例,而协议特定的派生类执行请求的详细信息。(...)
由于
WebRequest
类是一个抽象类,因此运行时WebRequest
实例的实际行为由Create
方法返回的派生类确定。有关默认值和异常的更多信息,请参阅后代类的文档,例如HttpWebRequest
和FileWebRequest
。
HttpWebRequest
类提供对WebRequest
中定义的属性和方法的支持以及其他属性和方法,使用户能够直接使用HTTP与服务器进行交互。
备注继续说明(仅选择一些与差异有关的内容):
请勿使用HttpWebRequest
构造函数。使用WebRequest.Create
方法初始化新的HttpWebRequest
对象。如果统一资源标识符(URI)的方案为http://或https://,则Create
返回一个HttpWebRequest
对象。GetResponse
方法对RequestUri
属性中指定的资源进行同步请求,并返回包含响应的HttpWebResponse
。您可以使用BeginGetResponse
和EndGetResponse
方法对资源进行异步请求。HttpWebRequest
公开作为属性发送到Internet资源的常见HTTP头值、通过方法设置或由系统设置;
然后有一张表there,这里不引用。