zoukankan      html  css  js  c++  java
  • webclientt和httpwebrequest

    WebClientt和HttpWebRequest访问远程数据

    HttpWebRequest类是WebRequest类的一个子类,用于发送HTTP请求,请求返回结果用HttpResponse类表示;

    WebClient类是Sliverlight中另一个可用于发送HTTP请求的类,实际上是基于WebRequest类实现的,可以将它看做是HttpWebRequest的一个高级封装。

    大部分HTTP访问二者都可以实现,但不同的是:

    1.HttpWebRequest使用基于代理的异步编程模型,WebClient使用基于事件的异步编程模型,基于事件的编程模型使用起来通常更为方便。

    2.HTTP响应返回引发的WebClient回调是在UI线程中调用的,而HttpWebRequest回调是在其他线程中调用的,UI线程中的回调可以直接操作UI元素、更新UI,而其他线程中的回调则必须通过线程调用才能操作UI。因而WebClient更适合需要更新UI的场景。

    3.WebClient类内置了一系列的事件,可以用来监视数据的上传/下载进度并反馈给应用程序;HttpWebRequest则不具备此功能。

    4.相对而言,HttpWebRequest更为底层,可以实现对HTTP请求信息更为灵活的控制,而HttpWebRequest对一些高级HTTP请求可能无能为力。

    WebClient类常用方法

    DownloadStringAsync/UploadStringAsync,以字符串形式下载/上传数据

    OpenReadAsync/OpenWriteAsync,以流形式下载/上传数据

    以上4个方法对应相应的异步操作完成事件:DownloadStringCompleted、UploadStringCompleted、OpenReadCompleted和OpenWriteCompleted。

    HttpWebRequest类常用方法

    BeginGetRequestStream/EndGetRequestStream,开始/结束对提供请求数据流的异步请求。

    BeginGetResponse/EndGetReponse,开始/结束对远程数据的异步请求。

  • 相关阅读:
    分布式搜索引擎Elasticsearch的查询与过滤
    剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作
    分布式缓存 cachecloud
    npm是什么NPM的全称是Node Package Manager
    Grafana监控可视化环境搭建
    github ssl验证跳过
    Linux分区扩容
    手把手教你把Vim改装成一个IDE编程环境(图文)
    根据条件批量删除document
    奇智网络聊天机器人
  • 原文地址:https://www.cnblogs.com/hxxy2003/p/2603067.html
Copyright © 2011-2022 走看看