【发布时间】:2011-05-26 08:39:02
【问题描述】:
似乎HttpWebRequest 拥有更多控制权,例如ReadWriteTimeout。我想知道我是否应该坚持使用HttpWebRequest,而不是WebRequest
【问题讨论】:
-
另见SO
-
好像这个问题每年都会重复:stackoverflow.com/q/8209781/274502
似乎HttpWebRequest 拥有更多控制权,例如ReadWriteTimeout。我想知道我是否应该坚持使用HttpWebRequest,而不是WebRequest
【问题讨论】:
我知道它的时间太长但仅供参考:
网络请求
System.Object
System.MarshalByRefObject
System.Net.WebRequest
WebRequest 是一个抽象基类。所以你实际上并不直接使用它。您可以通过它的派生类使用它 - HttpWebRequest 和 FileWebRequest。
您使用 WebRequest 的 Create 方法来创建 WebRequest 的实例。 GetResponseStream 返回data stream。
还有继承自WebRequest 的FileWebRequest 和FtpWebRequest 类。通常,您会使用WebRequest 来发出请求并将返回转换为HttpWebRequest、FileWebRequest 或FtpWebRequest,具体取决于您的请求。下面是一个例子:
示例:
var _request = (HttpWebRequest)WebRequest.Create("http://stackverflow.com");
var _response = (HttpWebResponse)_request.GetResponse();
希望这会有所帮助!
【讨论】:
WebRequest 是HttpWebRequest 和here 列出的其他一些请求的基类/父类。
目前,他们是:
System.IO.Packaging.PackWebRequest
System.Net.FileWebRequest
System.Net.FtpWebRequest
System.Net.HttpWebRequest
【讨论】:
WebRequest 可以是 HttpWebRequest/FtpWebRequest/FileWebRequest(或将来更多......)
【讨论】: