silverlight学习笔记使用webclient实现通讯(一)(上传和下载字符串数据).docx
《silverlight学习笔记使用webclient实现通讯(一)(上传和下载字符串数据).docx》由会员分享,可在线阅读,更多相关《silverlight学习笔记使用webclient实现通讯(一)(上传和下载字符串数据).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 我们曾经学习过如何在Silverlight中用 WebRequest通讯。这里我们学习如何使用WebClient实现通讯。一、什么是WebClient类1、基本知识 WebClient类是Mircsoft在.NET框架下提供的向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。通过这个类,大家可以在脱离浏览器的基础上模拟浏览器对互联网上的资源的访问和发送信息。它使人们使用起来更加简单方便,然而它也有先天不足的地方。那就是缺少对cookies/session的支持。 WebClient类为Silverlight插件提供了一整套的 客户端功能,可以下载应用程序数据,比如XA
2、ML内容,附加的程序集或者视频图片等媒体文件。WebClient可以根据程序须要即时下载内容,可以异步呈现和使用下载的内容,而不是随HTML页面一起下载。 WebClient类提供了发起请求、监视请求的进度以及检索下载内容、上传数据到指定资源等功能。在Silverlight 2中,只能使用WebClient发起异步的请求,如开发一个视频播放应用程序,在应用程序加载时,选择开始请求每一部影片,使其加载到浏览器缓存中,这样可以避免缓冲延迟。 由于WebClient请求都是异步的,使用的是基于异步事件编程模型,大部分交互操作都是依靠事件处理来完成的,通常须要定义如下一个或者多个事件处理函数。2、相关
3、方法将数据上载到资源的 WebClient 方法OpenWriteAsync:检索Stream,它在不阻止调用线程的情况下以异步方式将数据发送到资源。UploadStringAsync:在不阻止调用线程的情况下,将String发送到资源。从资源下载数据的 WebClient 方法DownloadStringAsync:在不阻止调用线程的情况下,从资源下载String。OpenReadAsync:在不阻止调用线程的情况下,以异步方式从资源返回数据。您可以使用 CancelAsync 方法取消尚未完成的异步操作。3、两种工作方式:A、以字符串形式下载和上传数据 使用WebClient可以以字符串形
4、式下载数据,当请求一个指定地址的字符串时,调用DownloadStringAsync方法,操作完成后将触发DownloadStringCompleted事件,在该事件处理方法中能够接收到一个类型为DownloadStringCompletedEventArgs的参数,它的Result属性的类型为String,我们可以通过该属性来获得最终的字符串结果,它可以是一段普通的文本或一段XML文本等。B、 以流形式下载和上传数据 使用WebClient同样可以以流形式下载数据,当请求下载的资源是一个流时,可调用OpenReadAsync方法,此操作完成后将触发OpenReadCompleted事件,在该
5、事件处理方法中能够接收到一个类型为OpenReadCompletedEventArgs的参数,它的Result属性类型为Stream,使用此属性能够获取到最终的流结果。二、示例如何实现通讯 (以字符串形式下载和上传数据) 新建Silverlight应用程序SLWebClient。如下图:编写界面布局,XAML如下: 界面如下图: 在客户端,我们要完成两段代码:i、向服务器端发出下载字符串请求,相关代码如下:#region以字符串形式下载信息privatevoidbtnLoadCity_Click(objectsender,RoutedEventArgse)GetInfomation(city)
6、;privatevoidbtnLoadWeather_Click(objectsender,RoutedEventArgse)GetInfomation(weather);privatevoidGetInfomation(stringinfoType)/stringtranType=Json;stringtranType=TextStr;Uriendpoint=newUri(String.Format( :/localhost:49417/WebClientDownHandler.ashx?infoType=0&tranType=1,infoType,tranType);WebClientcl
7、ient=newWebClient();client.DownloadStringCompleted+=newDownloadStringCompletedEventHandler(client_DownloadStringCompleted);client.DownloadStringAsync(endpoint);voidclient_DownloadStringCompleted(objectsender,DownloadStringCompletedEventArgse)stringRetStr=;if(e.Error=null)/RetStr=WebClient成功通讯;RetStr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- silverlight 学习 笔记 使用 webclient 实现 通讯 上传 下载 字符串 数据
链接地址:https://www.taowenge.com/p-88144401.html
限制150内