Windows Phone网络应用 (1)

来源:互联网 发布:七牛和阿里云 编辑:程序博客网 时间:2024/05/21 22:43
这一节我们主要介绍一下网络通讯相关知识,Windows Phone中目前支持WebClient和HttpWebRequest等上层OSI协议通讯方式,笔者在写这章时候还不支持socket编程,不过有消息说马上要开始支持。这章,我们围绕WebClient和HttpWebRequest来介绍。
1 Http访问类
WebClient与HttpWebRequest一样都可以进行http通讯,用来发送get/post请求到服务器,从服务器接收数据。这节我们来介绍一下二者的区别:
* WebClient使用更加简单,它是对HttpWebRequest的封装
* 既然WebClient是对HttpWebRequest的封装,那么它必然有些限制,一般HttpWebRequest可以对通讯控制得更精细些,比如可以方便添加各种信息,如headers, cookies, protocol, timeout等。这些信息有些在WebClient中也可以通过添加Headers属性实现,但是比较麻烦。
比如为HttpWebRequest添加ContentType很直接,而为WebClient添加ContentType就不那么直观了:
request.ContentType="application/x-www-form-urlencoded";
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
另外,比如timeout设置,在中WebClient设置就更麻烦了,需要你自己定义一个类,继承于WebClient,实现它的GetWebRequest方法
* WebClient和HttpWebRequest事件通知回调是在不同线程中执行的。WebClient的回调函数是在主线程中执行的,而HttpWebRequest事件回调是在单独线程中执行的,所以要更新主线程中的控件,需要通过Dispatcher实现。
例子参考
http://www.silverlightchina.net/html/zhuantixilie/winphone7/2011/0303/5772_2.html
原创粉丝点击