这一节我们主要介绍一下网络通讯相关知识,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 |
Windows Phone网络应用 (1)
最新推荐文章于 2024-07-24 20:59:22 发布