博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webclientt和httpwebrequest
阅读量:6441 次
发布时间:2019-06-23

本文共 987 字,大约阅读时间需要 3 分钟。

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,开始/结束对远程数据的异步请求。

转载于:https://www.cnblogs.com/hxxy2003/archive/2012/07/21/2603067.html

你可能感兴趣的文章
Data-Mediator专题之属性回调
查看>>
每天一个Linux命令之ps-查看系统进程信息
查看>>
图解JavaScript原型链继承
查看>>
用VIPER构建iOS应用
查看>>
Java开源诊断工具 Arthas 发布v3.1.0
查看>>
什么是以太坊
查看>>
高效开发者是如何个性化VS Code插件与配置的?
查看>>
Java日志那些事
查看>>
117. Populating Next Right Pointers in Each Node II
查看>>
【笔记】重学前端-winter
查看>>
大数据构建模块:选择体系结构和开源框架
查看>>
62. Unique Paths
查看>>
告诉你微信域名被封的原因和防封方案
查看>>
七个你没用过的炫酷开发工具推荐
查看>>
深度解析利用ES6进行Promise封装总结
查看>>
css的content属性
查看>>
熬过了互联网“寒冬”,接下来的金三银四你该怎么面试进BAT?
查看>>
Java 开源库精选(持续更新)
查看>>
Scrum联盟发布2015年Scrum状况报告
查看>>
在 Ubuntu 16.04 LTS 上安装 Python 3.6.0
查看>>