WP7 开发学习(2):在WP7中使用网络请求

转载 2012年03月30日 21:16:23

上一篇中介绍到“合一微博”主要是调用腾讯、新浪的开放API实现的,实现这一切都是要请求网络资源的。下面简单介绍一下在WP7中怎样进行网络请求。

wp7中对网络操作没有同步操作,都是异步的,这和Web有点不同。

方案一:使用HttpWebRequestHttpWebResponse对象 

 其基本步骤如下:

 1,实例化一个HttpWebRequest对象

     2,开始请求

     3,实例化一个HttpWebResponse对象来接受请求回来的对象

     4,实例化一个流来处理上一步的response

     5,对上一步的流进行处理,这就要你最想要的喽

     6,记得把流关闭

     7,关闭response响应 

 

示例代码: 

 
        public void GetRequest()
        {
            //实例化一个HttpWebRequest对象
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com.hk/");

            //开始执行请求
            request.BeginGetResponse((result) =>
            {
                //实例化一个HttpWebResponse对象来接受请求回来的数据
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);

                //实例化一个流来处理response
                using (System.IO.StreamReader sr = new StreamReader(response.GetResponseStream()))
                {
                    //do something 对Stream 进行处理
                    
//......
                    
//......

                    
//关闭response响应
                    response.Close();
                }
            }, request);
}  

        

 方案二:使WebClient对象进行网络请求。

WebClient是请求远程资源的最简洁的方法,直接返回字符串。

它实际上是对HttpWebRequest的封装,隐藏了一些细节,而HttpWebRequest则可以让你了解请求的过程。

 示例代码: 

        public void GetRequest() 
        {

            WebClient client = new WebClient();
            client.DownloadStringAsync(new Uri("http://www.google.com.hk/"));
            //匿名委托来处理返回来的字符串
            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler((sender, e) =>
            {
                //do something 对e.Result 进行处理。e. Result就是你要的东西。
                //......
                
//......
            });
        }

 

 方案三(推荐使用):使用第三方框架Hammock(吊床)

Hammock是个免费开源的框架,托管在github 对网络操作进行了很好的封装,包含OAuth,不过只是OAuth1.0 tweetsharp中也用到了它。

 

下载地址:https://github.com/danielcrenna/hammock

 

使用步骤如下:

1,实例化RestClient对象

2,设置该对象的一些属性,如Authority

3,实例化一个RestRequest对象

4,添加RestRequest的请求参数

5,使用RestClient实例的BeginRequest方法进行异步请求

6,处理回调函数 

 

  实例代码: 

    public void GetRequest() 
         {

            RestClient client = new RestClient();

            RestRequest request = new RestRequest();
            request.Path = "http://www.google.com.hk/";
            request.Method = WebMethod.Get;
            request.Encoding = Encoding.UTF8;

            client.BeginRequest(request, new RestCallback((req, response, userState) =>
            {
                //do something 对response.Content 进行处理。 response.Content就是你想要的东西 
                //......
                
//......
            }));
        }

 

 原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/03/20/2407755.html 

相关文章推荐

WP7中怎样进行网络请求

在wp7中对网络操作没有同步操作,都是异步的,这和Web有点不同。 方案一:使用HttpWebRequest和HttpWebResponse对象   其基本步骤如下:  1,...

Windows Phone 7(WP7)开发 网络操作(2) HttpWebRequest GET请求队列

在日常的wp7开发中,我们往往会遇到这样的需求:请求一个网络数据,根据其获取的结果,再发起下一条操作请求。一个例子:自动搜索最热门手机产品并搜索该关键词,首先需要请求百度搜索风云榜,获取榜单,并提取出...

WP7开发学习(4):Style样式的四种使用

在Web开发中,我们通过CSS来控制页面元素的样式,一般常用三种方式: 1.       内联样式表:即直接设置元素的style属性 2.       嵌入样式表:即在html页面上写一个...

学习WP7应用开发的笔记--在App和Page中使用资源集合的注意点1

今日看了Charles Petzold【美】著作的《Windows Phone 7程序设计》一书中的资源集合,特此做笔记。 在Page.xaml中添加资源集合时, 似下面这样 ...

WP7 网络操作(1) HttpWebRequest基本的GET请求

一、预备知识:   什么是Get请求?什么是Url?请直接Baidu,Google,Bing。 二、WP7的网络操作:非阻塞的异步操作(暂时还没有看到直接的同步的操作的方式)。 三、主要...

【原创】WP7中使用进度条——弥补几乎所有网络上与之相关的技术博文的内容缺陷

首先要声明一点:敢把这篇技术日志名字起的这么霸气侧漏,不是我欠揍,而是实属无奈!WP7发布到现在也有3年的时间了吧!可网络上的技术博文资源啊,真心让人觉得无助。我不是一个痴迷于写技术博文的人,但是如果...

wp7使用Cocos2d-X for XNA制作一个塔防类游戏 (一)游戏基础场景搭建

转自:http://www.cnblogs.com/xnagame/archive/2012/04/14/2446618.html 游戏基础场景搭建   Loading,进入...

WP7开发解惑(2):如何从安装文件夹拷贝文件到独立存储

很多朋友在论坛发贴抱怨Windows Phone 7中无法将安装文件夹中的文件拷贝到独立存储中。我很理解产生这种需求的来源:很多时候我们希望将自己预先定义好的一些配置文件添加到项目中,然后在用户安...

<cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:碰撞检测和收集物品(二)

本教程基于子龙山人翻译的cocos2d的IPHONE教程,用cocos2d-x for XNA引擎重写,加上我一些加工制作。教程中大多数文字图片都是原作者和翻译作者子龙山人,还有不少是我自己的理解和加...

<cocos2d-x for wp7>使用cocos2d-x制作一个太空射击游戏

本次教程参考文章:http://www.cnblogs.com/zilongshanren/archive/2011/06/09/2074962.html   本次教程做一个空战游戏,这个游戏类型相...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WP7 开发学习(2):在WP7中使用网络请求
举报原因:
原因补充:

(最多只允许输入30个字)