Silverlight supplies several classes that you can use to make and receive requests over HTTP. Depending on the level of access you require, you can use either the WebClient class for simplicity or the WebRequest and WebResponse classes for flexibility. The latter classes are a little more difficult to use as they require slightly more complicated asynchronous code. However, they give you more control over how things work. Web access through all these classes must be performed asynchronously. This enables you to keep the client responsive, so it isn't a bad thing.

Using WebClient

To use the WebClient class, you create an instance, attach an event handler to one of several events it exposes, and then make a request using one of several methods. Each method has a corresponding event. For example, the DownloadStringAsync() method raises the DownloadStringCompleted event when it completes. This method performs an HTTP GET operation on a URI. To perform a POST operation, you use the UploadStringAsync() method. There are also methods that you can use to work with streams of data rather than string data.

For example, to perform an HTTP GET on some data at a particular URI, you might write the following:

WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(

   new Uri(“http://www.mygreatshopofgreatness.com/products/14159”));

In the ...

Get Beginning Windows® Phone 7 Application Development: Building Windows® Phone Applications Using Silverlight® and XNA® now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.