Mega Code Archive

 
Categories / C# / Network
 

Download text data from the specified URI

using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Net; using System.IO; using System.ComponentModel; namespace TrayWeather.Utils {     /// <summary>     /// Download text data from the specified URI     /// </summary>     class DownloadText     {         private BackgroundWorker textDownloader;         public delegate void DownloadedEventHandler(string Result);         public event DownloadedEventHandler DataDownloaded;         public DownloadText()         {             textDownloader = new System.ComponentModel.BackgroundWorker();         }         /// <summary>         /// Download text data from the specified URI         /// </summary>         /// <param name="Uri">Text data uri</param>         /// <param name="Codepage">Text codepage</param>         public void GetTextAsync(Uri Uri, Encoding Codepage)         {             textDownloader.DoWork += new DoWorkEventHandler(xmlDownloader_DoWork);             textDownloader.RunWorkerCompleted += new RunWorkerCompletedEventHandler(xmlDownloader_RunWorkerCompleted);             GetTextArgs data = new GetTextArgs(Uri, Codepage);             textDownloader.RunWorkerAsync(data);         }           private void xmlDownloader_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)         {             if (e.Error != null)             {                 //Under Development                 //******************************************************                 //if (Settings.Default.DisplayNetworkErrors)                 //    throw e.Error;             }             else             {                 this.DataDownloaded((string)e.Result);             }         }         private void xmlDownloader_DoWork(object sender, DoWorkEventArgs e)         {             GetTextArgs data = ((GetTextArgs)e.Argument);             Encoding encode = System.Text.Encoding.UTF8;             if (data.dataCodepage != null)                 encode = data.dataCodepage;             e.Result = GetText(data.dataUri, data.dataCodepage);         }         private struct GetTextArgs         {             public GetTextArgs(Uri XmlUri, Encoding Codepage)             {                 dataUri = XmlUri;                 dataCodepage = Codepage;             }             public Uri dataUri;             public Encoding dataCodepage;         }     } }