首页 > 代码库 > wp8通过WebClient从服务器下载文件
wp8通过WebClient从服务器下载文件
通过WebClient从Web服务器下载文件,并保存到wp8手机应用程序的独立存储。
我们可以通过利用webClient_DownloadStringCompleted来获得下载完成所需要的时间,用Stopwatch得到下载的总时间。
通常我们都将上传、下载作为异步事件来处理,以便不阻止主线程。
String url = "http://172.18.144.248:8080/upload/" + filename; WebClient client = new WebClient(); client.Encoding = System.Text.Encoding.UTF8; client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(this.webClient_DownloadStringCompleted); Stopwatch sw; sw = Stopwatch.StartNew();//用来记录总的下载时间 public static Task<string> DownloadStringTask(this WebClient webClient, Uri uri) { var tcs = new TaskCompletionSource<string>(); webClient.DownloadStringCompleted += (s, e) => { if (e.Error != null) { tcs.SetException(e.Error); } else { tcs.SetResult(e.Result); } }; webClient.DownloadStringAsync(uri); return tcs.Task; } public void webClient_DownloadStringCompleted(object s, DownloadStringCompletedEventArgs e) { sw.Stop(); long totaltime = sw.ElapsedMilliseconds; MessageBox.Show(totaltime+"ms,download succeed!"); }webClient.DownloadStringAsync(uri)得到的是字符串,我们将其保存到独立存储中,通过 await IsolatedStorageHelper.writeFileAsync(filename,cont)异步执行,通过writeFileAsync函数写入独立存储。
public async static Task writeFileAsync(String fileName, String text) { using (IsolatedStorageFile isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()) { if (isolatedStorageFile.FileExists(fileName)) { isolatedStorageFile.DeleteFile(fileName); } using (IsolatedStorageFileStream isolatedStorageFileStream = isolatedStorageFile.CreateFile(fileName)) { using (StreamWriter streamWriter = new StreamWriter(isolatedStorageFileStream,System.Text.Encoding.UTF8)) { streamWriter.Write(text); streamWriter.Close(); } isolatedStorageFileStream.Close(); isolatedStorageFileStream.Dispose(); } } }
wp8通过WebClient从服务器下载文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。