Windows Phone 7 开发 31 日谈——第25日:外部API
本文是“Windows Phone 7 开发 31 日谈”系列的第25日。
昨天我写了如何在你的应用程序中嵌入字体,视频和图片。今天,我们来讨论从Web Service中获取数据,并将它们填入到你的应用程序中。
介绍Twitter API
如果你之前没有玩儿过这个,那你肯定会常听我将一个Twitter应用程序比喻为“Hello, world!”程序。原因很简单,因为几乎每一个应用程序都需要连接Web Service,Twitter的API用起来非常简单,并且是免费的,不需要任何注册。换句话说,你可以无障碍地介入,这是学习新技术的一种好方法。
有关Twitter API的关键内容可以在这里找到:http://dev.twitter.com/。我们来看看用户时间线元素的API,利用这个指定的URL模板:http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=jeffblankenburg。这里的用户名,jeffblankenburg ,可以用任意的Twitter用户名替换。如果点击我给你提供的URL,你会看到很多XML文档。这个文档包含了我最近的Twitter信息,以及大量的元数据。以下是这个文档中的一个节点:
对于上面的内容要记住的是这仅仅是XML,没有什么神秘的,也没神秘特别的。网络中大多数Web Service都提供了XML源,一般来说,我们可以以一种统一的方式来处理它们。
将XML数据从网络中获取到我们的应用程序
从手机中正在运行的应用程序上在线获取XML数据非常简单(只需3行!)。最重要的是要由你来检测用户是否已经获取到了连接。下面是一种非常简单的方法,使用Microsoft.Phone.Net.NetworkInformation程序集:
在这个循环中,我们要创建一个WebClient对象,并异步调用我刚刚给你的地址中的Twitter API。首先,我为数据检索完成后创建了一个事件处理程序,然后发起异步调用。(在这个例子中,你会看到我用了一个文本框中来获取用户输入的用户名)
{
WebClient twitter=newWebClient();
twitter.DownloadStringCompleted
+=newDownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);twitter.DownloadStringAsync(newUri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name="+TwitterNameBox.Text));
}
当返回数据时,事件处理程序会被调用,此时我们需要添加一些内容。
在应用程序中使用XML
当我们程序中获取到了数据时,就要真正地在屏幕上显示它们了。在我的其他例子中,我展示了如何将一个值绑定到XAML控件上。但本文重点不在此(虽然下面的示例代码中包含这些内容),相反,我们来看看如何用LINQ来解析XML数据。
为此,需要引入另一个名称空间,System.Xml.Linq。把它加入后,数据就变的非常简单了。我们需要一个新的XElement对象来保存XML数据。
一旦xmlTweets中保存了我们的数据,剩下要做的就是将它绑定到一个ListBox中,并使用LINQ从这些数据中创建自定义的TwitterItem对象。
你会看到在下面的示例代码中,我自定义的TwitterItem类中包含一个“message”属性。
就是这样!我们从XML源中实时抓取数据,然后再程序中处理它们,最后将它们显示在ListBox中。至于完整的示例,参见下面的代码:
下载示例代码
这是一个完全可以运行的(但肯定不是包含所有功能的)Twitter客户端。你可以在文本框中输入一个用户名,然后程序就会连接Twitter API,抓取数据,解析并在程序中显示。
原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-25-Talking-To-External-APIs.aspx
转载于:https://www.cnblogs.com/dajiang02/archive/2011/01/27/1946273.html
Windows Phone 7 开发 31 日谈——第25日:外部API相关推荐
- Windows Phone 7 开发 31 日谈——第6日:工具栏
Windows Phone 7 开发 31 日谈--第6日:工具栏 By Jeff Blankenburg 本文是"Windows Phone 7 开发 31 日谈"系列的第6日. ...
- Windows Phone 7 开发 31 日谈——第22日:应用?还是 游戏?
本文是"Windows Phone 7 开发 31 日谈"系列的第22日. 昨天,我发了一篇极长的关于Silverlight Toolkit for Windows Phone的文 ...
- Windows Phone 7 开发 31 日谈——第13日:位置服务
本文是"Windows Phone 7 开发 31 日谈"系列的第13日. 昨天,我们讨论了Windows Phone的震动控制器,以及如何告知我们的用户去注意他们的设备上所发生的 ...
- Windows Phone 7 开发 31 日谈——第12日:使手机震动
By Jeff Blankenburg 本文是"Windows Phone 7 开发 31 日谈" 系列的第12日. 昨天,我们谈到了Windows Phone的加速感应器,以及如 ...
- 一年级课程表(3月21日-3月25日)
一年级课程表(3月21日-3月25日) 时 间 周 一 周 二 周 三 周 四 周 五 9:00-9:25 语文(传统文化) 数学(数学故事) 语文(趣味识字) 数 ...
- 二年级课程表(3月21日-3月25日)
二年级课程表(3月21日-3月25日) 时间 周一 周二 周三 周四 周五 9:00-9:25 语文(百家姓) 数学(速算巧算) 语文(课文) 数学(生活数学) 语文(古诗诵读) 9:30-9:40 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(07月25日-07月31日)
上周,微软发布Visual Studio LightSwitch 2011正式版,为商业应用开发人员推出一个新的应用开发产品.Visual Studio LightSwitch 2011 作为一种简单 ...
- 分享Silverlight 3D开源项目和Silverlight/WPF/Windows Phone一周学习导读(4月25日-4月29日)...
Silverlight 5 Beta版本中最引人注目的特性是3D功能,Silverlight 5与XNA Framework的结合,使Silverlight完美支持3D效果. 在微软MIX11大会后, ...
- 会议记录(7月26日——8月25日)
会议名称: geniusblue 第六次会议 会议时间: 2009 年 7 月 26 日 会议地点: 10 号楼会议室 参加人员:焦媛.许焱.李伦.曹哲.黄宇.连成 会议记录:曹哲 会议摘要: 1. ...
最新文章
- 分布式思想和rpc解决方案介绍
- windows下批量修改文件(或文件夹)权限或所有者
- 11-使用NSPersistentContainer搭建CoreData Stack
- JS判断上传文件类型
- oracle 树查询语句,oracle 树查询 语句
- mysql在mac上的坑
- 动态污点分析——隐式流造成的漏报和误报
- ehcache springboot_阿里内部进阶学习SpringBoot+Vue全栈开发实战文档
- spring相互依赖怎么解决_被问到Spring循环依赖怎么解决?秀给面试官看!内附图解...
- Zabbix 配置钉钉告警功能
- 计算机休眠变关机,笔记本电脑一进入睡眠休眠就关机!重启后就显 – 手机爱问...
- python学习笔记——守护进程
- 计算机代码大全喜欢你,2020微信表白代码大全
- 网站搜索优化SEO概念与方法
- 马氏距离Mahalanobis Distance实例
- 如何提升自己写代码的能力
- 无法安装冰点还原_新的苹果电脑还原系统提示:安装错误的Apple Silicon M1 Mac
- vscode修改默认打开浏览器
- 16条生活潜规则:没人明说,但很重要
- 基于XGBoost的用户流失预测
热门文章
- c语言 一元多项式乘法,[内附完整源码和文档] 基于C语言实现的一元多项式的计算...
- linux 双线,linux 双线接入方案
- 李嘉诚的四句话,和各位共勉,让我们干了这碗鸡汤吧,共同挑战未来
- Go语言基础(四)—String与其他基本数据类型的转换
- CentOS7设置静态ip地址的两种方式
- 6-1图像分类网络模型框架解读(上)
- jq中ajax请求跨域,用JQuery实现简单的Ajax跨域请求
- path png转svg_如何将jpg或png图像转换成svg并保存?
- matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)
- MySQL 日志文件