webrequest 和 httpwebrequest 有啥区别

Posted

技术标签:

【中文标题】webrequest 和 httpwebrequest 有啥区别【英文标题】:what the difference between webrequest and httpwebrequestwebrequest 和 httpwebrequest 有什么区别 【发布时间】:2011-05-26 08:39:02 【问题描述】:

似乎HttpWebRequest 拥有更多控制权,例如ReadWriteTimeout。我想知道我是否应该坚持使用HttpWebRequest,而不是WebRequest

【问题讨论】:

另见SO 好像这个问题每年都会重复:***.com/q/8209781/274502 【参考方案1】:

我知道它的时间太长但仅供参考:

网络请求

System.Object
    System.MarshalByRefObject
        System.Net.WebRequest

WebRequest 是一个抽象基类。所以你实际上并不直接使用它。您可以通过它的派生类使用它 - HttpWebRequestFileWebRequest

您使用 WebRequest 的 Create 方法来创建 WebRequest 的实例。 GetResponseStream 返回data stream

还有继承自WebRequestFileWebRequestFtpWebRequest 类。通常,您会使用WebRequest 来发出请求并将返回转换为HttpWebRequestFileWebRequestFtpWebRequest,具体取决于您的请求。下面是一个例子:

示例:

var _request = (HttpWebRequest)WebRequest.Create("http://stackverflow.com");
var _response = (HttpWebResponse)_request.GetResponse();

希望这会有所帮助!

【讨论】:

【参考方案2】:

WebRequestHttpWebRequest 和here 列出的其他一些请求的基类/父类。

目前,他们是:

  System.IO.Packaging.PackWebRequest
  System.Net.FileWebRequest
  System.Net.FtpWebRequest
  System.Net.HttpWebRequest

【讨论】:

【参考方案3】:

WebRequest 可以是 HttpWebRequest/FtpWebRequest/FileWebRequest(或将来更多......)

【讨论】:

以上是关于webrequest 和 httpwebrequest 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

c#利用WebClient和WebRequest获取网页源代码的比较

HttpRequest、HttpWebRequest和WebRequest的区别

使用HttpClient和WebRequest时POST一个对象的写法

WebRequest.GetRequestStreamAsync()方法每次MNS访问令牌超时

WebRequest 奇怪的 NotFound 错误

Powershell Invoke-WebRequest 和字符编码