Networking In The Hand includes the WebClient class which is a helper class which makes it easier to do uploading and downloading of data using HTTP and FTP transports. For example rather than creating an HttpWebRequest, setting a number of properties, getting the response and reading the response stream and copying the data into a file, why not use DownloadFile to perform a single operation to write the data from a specific Uri to a local file:-
WebClient wc = new WebClient();
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
Additional methods provide the ability to download a string, and download a byte array containing the data. There are a similar set of operations for uploading:-
if (openFileDialog1.ShowDialog() == DialogResult.OK)
Not only does this work with the HTTP transport, but also with the FTP support which is also part of the library – the only difference is the Uri that you pass in. If your site requires a username/password you can set the Credentials property of the WebClient once and they will be used for all subsequent operations.