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

上一篇中介绍到“合一微博”主要是调用腾讯、新浪的开放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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值