WebClient on yksinkertainen luokka websivujen(/tiedostojen) hakemiseen ja lomakkeiden lähettämiseen.

Websivujen ja tiedostojen lataaminen

WebClient client = new WebClient();

// ladataan jonkin sivun lähdekoodi
string source1 = client.DownloadString("http://www.sivusto.com");

// joskus eo. metodilla saattaa ääkköset olla sekaisin
// jos tietää sivustolla käytetyn enkoodauksen, voi lähdekoodin ladata myös seuraavasti
string source2 = Encoding.UTF8.GetString(client.DownloadData("http://www.sivusto.com"));

// tiedoston lataaminen
client.DownloadFile("http://www.sivusto.com/tiedosto.txt", "tiedosto.txt");

Lataaminen taustalla

Websivuja ja tiedostoja voi ladata taustalla. Taustalla suoritettavien metodien nimet päättyvät 'Async'.
static void Main(string[] args)
{
 WebClient client = new WebClient();

 // ladataan taustalla
 // kun lataus on valmis, kutsutaan metodia client_DownloadDataCompleted
 client.DownloadDataCompleted += new DownloadDataCompletedEventHandler(client_DownloadDataCompleted);
 // aloitetaan lataaminen
 client.DownloadDataAsync(new Uri("http://www.sivusto.com"));
}

static void client_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
 // lähdekoodi muuttujaan
 string source = Encoding.UTF8.GetString(e.Result);
}

Lomakkeiden lähettäminen ja cookien poimiminen

NameValueCollection loginData = new NameValueCollection();
loginData.Add("username","käyttäjätunnukseni");
loginData.Add("password", "salasanani");

WebClient client = new WebClient();
string source = Encoding.UTF8.GetString(client.UploadValues("http://www.sivusto.com/login", loginData));

// cookien poimiminen
string cookie = client.ResponseHeaders["Set-Cookie"];
// cookien asettaminen
client.Headers["Cookie"] = cookie;