O'Reilly logo

C# in a Nutshell by Peter Drayton, Ted Neward, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

WebRequest

Synopsis

Because many Internet protocols are request-response synchronous protocols, this class serves as a base type for any and all request-response style of network communication. As such, a C# programmer will never create a WebRequest type directly—instead, a static method on this class, Create(), is used as a “virtual constructor” to create a subtype of WebRequest that matches the protocol scheme requested. For example, if the string http://www.oreilly.com is passed to Create(), an instance of HttpWebRequest is handed back. Out of the box, only “http”, “https” and “file” are supported.

Once obtained, a C# programmer can manipulate the common properties of the WebRequest type to control various aspects of the request. Alternatively, downcast the generic WebRequest reference to the concrete type returned to access protocol-specific aspects of that protocol—for example, the returned object from WebRequest.Create("http://www.oreilly.com") will be a HttpWebRequest, so it is safe to cast it as such. This allows access to the Accept and SendChunked properties/headers in the request. Be sure to manipulate these properties before the request is sent, or the modifications will have no effect.

Use the GetResponse() method to obtain a WebResponse object corresponding to the response that the remote server sent. This means that the request is sent, and the response harvested. The methods BeginGetResponse() and EndGetResponse() are asynchronous versions of GetResponse() ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required