• Silverlight杂记之HTTP通信WebClient介绍


    Silverlight的微型.NET框架集成了具有通信功能的类,这些类都封装在System.Net命名空间中。但是由于一些原因,允许的通信协议只有HTTP/HTTPS一种,我们常见的FTP,FILE等协议并未得到支持。

           System.Net命名空间中有一个特殊的WebClient类,该类为Silverlight浏览器插件提供了一整套HTTP客户端功能。使用WebClient实现按需部署来优化下载过程,让我们在第一时间不需要呈现的元素等到用户进行请求时再发送。该类提供了从URI标识的任何本地,Intranet或Internet资源发送和接收数据的公共方法。

           通过WebClient,我们可以使应用程序具有初始化请求,监视请求进程和获取服务器端资源的功能,这样就便于在无需刷新整个宿主HTML页面情况下就能得到异步请求的XAML文档,附加程序集,媒体元素等应用程序数据,并在我们当前UI中显示出来。

           我们除了下载指定的数据,还可以使用WebClient把本地资源以流的形式写入服务器。在表面上看,WebClient和文档对象模型中的XMLHttpRequest对象非常相似。

    下载相关方法

    方法

    描述

    DownloadStringAsync

    在不阻止线程调用的情况下,使用HTTP Get命令,以字符串的形式从指定Uri异步下载资源。注意:在下载操作完成之前不能对同一个WebClient对象调用该方法。

    OpenReadAsync

    在不阻止线程调用的情况下,使用HTTP Get命令,以流的形式从资源异步返回数据。注意:在下载操作完成之前不能对同一个WebClient对象调用该方法。

    下载相关事件

    事件

    描述

    DownloadProgressChanged

    当异步下载操作成功传输部分或全部数据时触发

    DownloadStringChanged

    当异步字符串下载操作完成时触发

    OpenReadCompleted

    当异步资源读取操作完成时触发

    上传相关方法

    方法

    描述

    UploadStringAsync

    在不阻止线程调用的情况下,使用HTTP POST命令向资源异步发送字符串。当字符串上传完成之后将自动触发UploadStringCompleted事件。

    OpenWriteAsync

    在不阻止线程调用的情况下,使用HTTP POST命令获取用于向资源异步发送数据的可写流。如果关闭流,则在请求发送到Uri并获取响应之前,线程将被阻止,但是在流打开时,方法不会阻止线程。

     

     

     

     

     

     

    上传相关事件

    事件

    描述

    UploadProgressChanged

    当异步上传操作成功传输部分或全部数据时触发

    UploadStringChanged

    当异步字符串上传操作完成时触发

    OpenWriteCompleted

    当异步操作打开向资源写入数据的流时触发

    上传和下载方法都包含字符串和流两种资源访问方式,选择哪一种方法取决于如何使用资源。通常情况下,数据流更为通用。

  • 相关阅读:
    关于Java常见的误解
    Java程序设计概述
    是结束,更是开始!
    从零开始单排学设计模式「简单工厂设计模式」黑铁 III
    某神秘公司 RESTful、共用接口、前后端分离、接口约定的实践
    这40张图送给单身程序员,情人节请一笑而过!
    科技圈晒开工福利!2019一起定个小目标!
    IDEA一定要懂的32条快捷键
    假期结束了,我相信未来会更好!
    有一种痛,叫 “今年没有年终奖”!!!
  • 原文地址:https://www.cnblogs.com/wzk89/p/2006611.html
Copyright © 2020-2023  润新知