[ Team LiB ] |
Recipe 13.12 Downloading Data from a ServerProblemYou need to download data from a location specified by a URI; this data can be either an array of bytes or a file. SolutionUse the WebClient DownloadData and DownloadFile methods to download the bytes of a file from a URI: string uri = "http://localhost/mysite/upload.aspx"; // make a client WebClient client = new WebClient( ); // get the contents of the file Console.WriteLine("Downloading {0} " + uri); // download the page and store the bytes byte[] bytes = client.DownloadData (uri); // Write the HTML out string page = Encoding.ASCII.GetString(bytes); Console.WriteLine(page); You could also have downloaded the file itself: // go get the file Console.WriteLine("Retrieving file from {1}...\r\n", uri); // get file and put it in a temp file string tempFile = Path.GetTempFileName( ); client.DownloadFile(uri,tempFile); Console.WriteLine("Downloaded {0} to {1}",uri,tempFile); DiscussionWebClient simplifies downloading of files and bytes in files, as these are common tasks when dealing with the Web. The more traditional stream-based method for downloading can also be accessed via the OpenRead method on the WebClient. See AlsoSee the "WebClient Class" topic in the MSDN documentation. |
[ Team LiB ] |