It seems that HttpWebRequest has more control like ReadWriteTimeout. I am wondering whether I should stick with HttpWebRequest, rather than WebRequest
- 15,808
- 23
- 102
- 173
- 83,087
- 147
- 309
- 426
-
See also [SO](http://stackoverflow.com/questions/896253/c-sharp-httpwebrequest-vs-webrequest) – SteveC Nov 21 '12 at 11:17
-
seems like this question repeated every year: http://stackoverflow.com/q/8209781/274502 – cregox Jun 10 '13 at 14:58
3 Answers
WebRequest is the base/parent class for HttpWebRequest and some other requests as listed here.
For now, they are:
System.IO.Packaging.PackWebRequest
System.Net.FileWebRequest
System.Net.FtpWebRequest
System.Net.HttpWebRequest
- 21,633
- 5
- 37
- 59
A WebRequest can be a HttpWebRequest/FtpWebRequest/FileWebRequest (or more in the future...)
- 42,509
- 16
- 113
- 174
I know its too long time but just for information purpose:
WebRequest
System.Object
System.MarshalByRefObject
System.Net.WebRequest
The WebRequest is an abstract base class. So you actually don't use it directly. You use it through it derived classes - HttpWebRequest and FileWebRequest.
You use Create method of WebRequest to create an instance of WebRequest. GetResponseStream returns data stream.
There are also FileWebRequest and FtpWebRequest classes that inherit from WebRequest. Normally, you would use WebRequest to, well, make a request and convert the return to either HttpWebRequest, FileWebRequest or FtpWebRequest, depend on your request. Below is an example:
Example:
var _request = (HttpWebRequest)WebRequest.Create("http://stackverflow.com");
var _response = (HttpWebResponse)_request.GetResponse();
Hope this helps!
- 5,964
- 15
- 85
- 143