• 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则可以让你了解请求的过程。

    在实践过程中发现,对于一般的Http请求,WebClient比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

    作者 : 徐明祥
    出处:http://www.cnblogs.com/xumingxiang 
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
  • 相关阅读:
    hdu2049.java
    java输入输出流小细节
    滚动字幕
    hdu4504java
    HDU2054JAVA
    hdu2058java
    hdu2073递推题
    [转]SELinux管理与配置
    Can't connect to MySQL server on 'XXX' (13)
    CentOS6.5+php5.3听云安装过程
  • 原文地址:https://www.cnblogs.com/xumingxiang/p/2407755.html
Copyright © 2020-2023  润新知