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){ wc.DownloadFile(uriTarget, saveFileDialog1.FileName);}
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){ wc.UploadFile(uriDestination, openFileDialog1.FileName);}
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.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.