`
flycomos.lee
  • 浏览: 280490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Windows Phone网络HttpWebRequest用法

 
阅读更多

在Windows Phone系统中,通过HttpWebRequest类可以很容易的发送网络请求,获取网络数据。HttpWebRequest是异步操作,不会堵塞主线程。
  1.通过HttpWebRequest.CreateHttp()方法可以创建一个HttpWebRequest,下面代码简单实现发送一个GET请求。
  httpGet
 
        public void httpGet()
        {
            try
            {
                //请求地址
                String url = "http://www.2cto.com/ ";
                //创建WebRequest类
                HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri(url));

                //设置请求方式GET POST
                request.Method = "GET";

                //返回应答请求异步操作的状态
                request.BeginGetResponse(responseCallback, request);
            }
            catch (WebException e)
            {
                //网络相关异常处理
            }
            catch (Exception e)
            {
                //异常处理
            }
        }
 
  2.应答数据接收部分。
  responseCallback
 
        private void responseCallback(IAsyncResult result)
        {
            try
            {
                //获取异步操作返回的的信息
                HttpWebRequest request = (HttpWebRequest)result.AsyncState;
                //结束对 Internet 资源的异步请求
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);
                //解析应答头
                //parseRecvHeader(response.Headers);
                //获取请求体信息长度
                long contentLength = response.ContentLength;

                //获取应答码
                int statusCode = (int)response.StatusCode;
                string statusText = response.StatusDescription;

                //应答头信息验证
                using (Stream stream = response.GetResponseStream())
                {
                    //获取请求信息
                    StreamReader read = new StreamReader(stream);
                    string msg = read.ReadToEnd();
                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        textBlock1.Text = msg;
                    });
                }

            }
            catch (WebException e)
            {
                //连接失败               
            }
            catch (Exception e)
            {
                //异常处理
               
            }

        }
 
  通过HttpWebResponse可以获取返回的数据,在获取数据后,要想将数据显示到界面中,这里要主要一个问题。由于 HttpWebRequest是异步操作,所以这里应该有一个线程来处理网络,大家都知道Windows Phone中在线程里是不能操作UI的,这个需要交个UI主线程来处理,所以代码中用到了 Deployment.Current.Dispatcher.BeginInvoke。
  3.上面是简单的GET请求,POST请求和GET请求相比,多了一个发送请求体的操作过程。以下代码为POST请求,应对部分操作函数仍然是responseCallback。
  httpPost
 
        public void httpPost()
        {
            try
            {
                //请求地址
                String url = "http://www.2cto.com/ ";
                //创建WebRequest类
                HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri(url));

                //设置请求方式GET POST
                request.Method = "POST";

                //返回应答请求异步操作的状态
                request.BeginGetRequestStream(requestCallback, request);
            }
            catch (WebException e)
            {
                //网络相关异常处理
            }
            catch (Exception e)
            {
                //异常处理
            }
        }

        private void requestCallback(IAsyncResult result)
        {
            try
            {
                //获取异步操作返回的的信息
                HttpWebRequest request = (HttpWebRequest)result.AsyncState;
                //结束对 Internet 资源的异步请求
                StreamWriter postStream = new StreamWriter(request.EndGetRequestStream(result));
                postStream.WriteLine("作者:宇之乐");
                postStream.WriteLine("");

                //返回应答请求异步操作的状态
                request.BeginGetResponse(responseCallback, request);
            }
            catch (WebException e)
            {
                //异常处理

            }
            catch (Exception e)
            {
                //异常处理

            }
        }

分享到:
评论

相关推荐

    Windows Phone 下载网络图片Demo

    【Windows Phone 下载网络图片Demo】是一个针对Windows Phone平台的应用示例,主要展示了如何在该平台上实现从网络下载并显示图片的功能。这个Demo是开发者在CSDN博客上分享的一个技术教程,链接为,通过此教程,...

    windowsphone Gzip 压缩

    在IT行业中,Windows Phone平台虽然已经不再主流,但学习和理解Gzip压缩技术仍然非常重要,因为Gzip是一种广泛应用于网络数据传输的压缩算法,能够有效减少数据传输量,提高网络性能。本文将深入探讨Gzip在Windows ...

    windows phone 8.1 入门教程 网络编程 7

    本章节重点介绍了Windows Phone 8.1中如何使用`HttpWebRequest`进行网络编程的基本步骤,包括客户端发起GET请求、服务器端处理请求以及编码格式的问题解决。通过实际操作和案例分析,可以帮助初学者快速掌握这一重要...

    wphone WebClient和HttpWebRequest

    在Windows Phone平台上,WebClient和HttpWebRequest是两个用于网络数据通信的重要类,它们允许应用程序从Web服务器获取数据,如HTML、JSON或XML等。这两者都是.NET Framework的一部分,因此在Windows Phone开发中...

    WindowsPhone›案例

    开发者可以使用Visual Studio IDE来创建、调试和部署Windows Phone应用。 1. **Windows Phone 7的网络请求**: - 使用`HttpWebRequest`类:这是.NET Framework提供的一个基础类,用于发起HTTP请求。开发者可以通过...

    Windows Phone开发(47)示例源码

    然后,在Windows Phone应用中,通过`System.Net.WebClient`类或者`System.ServiceModel`命名空间下的`WebClient`或`HttpWebRequest`类来调用这些服务方法。 2. **使用WCF服务** WCF服务提供了更强大的功能,支持...

    [Windows.Phone.7.开发入门教程(英文版)].Code.Day02

    9. **网络通信**:Windows Phone 7提供了多种API进行网络通信,如WebClient、HttpWebRequest等,学习如何利用这些API进行数据交换和Web服务调用。 10. **多媒体和传感器支持**:Windows Phone 7支持多媒体处理和...

    windows phone7开发资料

    《Windows Phone 7 开发详解:从入门到精通》 Windows Phone 7(简称WP7)是由微软公司推出的一款智能手机操作系统,它以其独特的界面设计和丰富的应用生态系统吸引了一众开发者和用户。本资料集合旨在为初学者提供...

    Windows Phone 7使用HTTP Basic认证连接gsoap编写的Web Service(服务端)

    Windows Phone 7作为一个移动操作系统,其应用程序开发通常使用Silverlight,这使得开发者能够利用XAML和C#进行UI设计和业务逻辑处理。 首先,让我们了解HTTP Basic认证的基本原理。这是一种简单的身份验证机制,它...

    (源代码)Professional.Windows.Phone.7.Application.Development

    Chapter 14和16可能涵盖了设备API的使用方法和最佳实践。 5. **网络编程**:WP7应用往往需要进行网络通信,Chapter 12可能介绍了如何使用WebClient、HttpWebRequest等类进行HTTP请求,以及XML或JSON数据的解析。 6...

    windwos phone 三种异步编程

    在Windows Phone平台上,为了确保应用程序的流畅性和响应性,官方推荐使用异步编程模式来处理那些可能会导致用户界面(UI)冻结的操作,如网络请求、数据库访问等。本文将详细介绍Windows Phone平台上的三种主要异步...

    c# 《Windows Mobile平台应用与开发》源码

    6. **网络编程**:Windows Mobile应用可能需要进行HTTP通信、FTP文件传输等,源码会展示如何使用C#进行网络编程,如使用WebClient或HttpWebRequest类。 7. **设备特定功能**:Windows Mobile设备有其特有的硬件特性...

    wp7应用发开 代码 11-13章

    Windows Phone 7提供了多种数据持久化的方法,包括Isolated Storage、SQL CE(SQL Compact Edition)以及XML序列化。Isolated Storage是首选的本地存储方式,它允许应用程序安全地存储用户数据,不受其他应用干扰。...

    C# httpclient demo

    1. **description**:这可能是一个描述文件,详细解释了示例代码的目的和使用方法。 2. **C# and C++**:这个文件可能对比了C#和C++两种语言在处理HTTP请求时的差异,或者展示了如何在C++中实现类似的HTTP客户端功能...

    WP7豆瓣搜源码

    2. **网络通信**:源码可能使用了`System.Net`命名空间下的类,如`WebClient`或`HttpWebRequest`,来与豆瓣API进行交互,获取搜索结果。豆瓣API要求开发者发送HTTP请求并解析JSON响应数据。 3. **数据绑定**:由于...

    WP7.5Or Winform模拟登陆(异步)

    2. 使用HttpWebRequest的BeginGetResponse方法启动异步请求,传递一个回调函数,当响应准备就绪时,这个函数会被调用。 3. 在回调函数中,获取HttpWebResponse对象,然后读取响应内容,通常是一个HTML页面。 4. 分析...

    WPwebservices

    【WPwebservices】是2013年完成的一项基于Windows Phone 7(简称WP7)平台的毕业设计项目。这个项目的核心在于利用WP7设备调用各种网络服务,以实现特定的功能或信息交互。在那个时候,WP7是微软推出的智能手机操作...

    wp的Web服务编程案例

    总结,本案例的目的是教你如何在Windows Phone平台使用C#进行Web服务编程,包括创建Web服务客户端、调用服务方法、处理响应数据、异步编程和错误处理。通过学习和实践这些知识点,你将能够开发出能够充分利用互联网...

    wp7实例,Baby Sign Language

    在Windows Phone 7平台上,页面跳转通常是通过使用XAML定义页面布局,并在C#后端代码中调用NavigationService类的方法实现的。例如,`NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));`...

    实现短信在线发送的C#代码

    // 使用GET方法获取数据 hr.Timeout = 30 * 60 * 1000; // 设置超时时间(30分钟) WebResponse hs = hr.GetResponse(); // 发送请求并接收响应 Stream sr = hs.GetResponseStream(); // 获取响应流 ...

Global site tag (gtag.js) - Google Analytics