在Windows Phone系统中,通过HttpWebRequest类可以很容易的发送网络请求,获取网络数据。HttpWebRequest是异步操作,不会堵塞主线程。
  1.通过HttpWebRequest.CreateHttp()方法可以创建一个HttpWebRequest,下面代码简单实现发送一个GET请求。

httpGet

        public void httpGet(){try{//请求地址String url = "http://www.cnblogs.com/huizhang212/";//创建WebRequest类HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri(url));//设置请求方式GET POSTrequest.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.cnblogs.com/huizhang212/";//创建WebRequest类HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri(url));//设置请求方式GET POSTrequest.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("出处:http://www.cnblogs.com/huizhang212/");//返回应答请求异步操作的状态
                request.BeginGetResponse(responseCallback, request);}catch (WebException e){//异常处理
}catch (Exception e){//异常处理
}}

转载于:https://www.cnblogs.com/huizhang212/archive/2012/05/17/HttpWebRequest.html

Windows Phone 网络HttpWebRequest用法相关推荐

  1. Windows与网络基础:Windows基本命令-目录文件操作

    概括:了解Windows,先从基础命令开始 目标:掌握Windows的系统文件及目录操作的一些命令,掌握Windows的网络相关的命令. 原因:排查一些网络,包括还有对文件的一些操作,需要用到命令会比 ...

  2. Windows 2003 网络负载均衡的详细配置文档

    一.网络负载平衡的优点 1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务.网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快 ...

  3. 新的 Windows Azure 网络安全性白皮书

    下载新的 Windows Azure 网络安全性白皮书. Windows Azure 网络提供了将虚拟机安全连接到其他虚拟机所需的基础结构,以及云和内部部署数据中心之间的网桥. 本白皮书旨在挖掘这些内 ...

  4. ubuntu借助windows的网络共享上网

    ubuntu借助windows的网络共享上网 最近因工作需要又组装了一台电脑,装的是ubuntu.但是在公司申请上网权限比较慢,于是想借助工作机(windows)为ubuntu提供网络.下面是具体方法 ...

  5. Windows配置网络

    Windows配置网络 一.Windows网络组件 1.网络适配器:即网卡 2.协议:计算机与计算机.计算机与网络设备之间的通讯语言.TCP/IP是最常用的网络通讯协议 3.网络服务和客户端:只有安装 ...

  6. Windows添加网络位置向导(即我的电脑中添加网络盘符)

    Windows添加网络位置向导(即我的电脑中添加网络盘符) 简介 添加方法 网络位置格式 简介 概括来说,所谓的网络位置,是指一个主机上的一个盘符.比如,将IP地址为192.128.1.1的主机上的一 ...

  7. Windows Server网络操作系统安装

    网络操作系统的安装 项目一:Windows Server网络操作系统安装 子任务1:认知网络操作系统 1>在搭建服务器时,我们首先需要了解到应该安装什么操作系统,不同的操作系统应用的环境是不一样 ...

  8. windows phone 网络开发三部曲(一)各种包的各种抓法

    首先感谢大家对我上一篇博客的支持,让我也体验了一把上榜的感觉. 这无疑是对我这个刚刚打算,认真写写博客的人的莫大的鼓励,再次感谢(鞠躬)!! 接下来想和大家分享一些关于windows phone网络开 ...

  9. 将CentOS/ubuntu的目录添加到windows的网络位置/将centOS目录影射为windows网络驱动器

    目录 1.安装samba服务 2.检查samba是否启动 3.配置samba 4.重启samba服务 5.配置samba用户和密码 6.windows添加网络位置 7.错误:输入的文件夹似乎无效,请选 ...

最新文章

  1. 一致性哈希(Consistent Hashing)
  2. JsonCpp的简单使用方法
  3. java中List的toArray方法
  4. java获取ua浏览器指纹_头条:如何获取浏览器指纹信息
  5. python之时间日期time
  6. CASE_01 基于FPGA的交通灯控制器
  7. 2021牛客第四场-E Tree Xor-线段树区间异或
  8. 学成在线--14.使用RabbitMQ完成页面发布
  9. Android查看真机布局,android-外部存储
  10. 计算机软件应用员,济宁计算机办公应用软件操作员
  11. 诗与远方:无题(三十六)- 素质低下
  12. PHP变量名区分大小写,函数名不区分大小写
  13. python中的itertools模块
  14. 图像识别实战——天气分类
  15. 凸优化有关的数值线性代数知识五:作业题
  16. mysql判断后执行查询语句吗_如何看mysql执行的sql语句
  17. atitit.编程语言 类与对象的 扩展机制.doc
  18. excel求回归直线方程的公式_求回归直线方程的三种方法
  19. 新品迭出,史上最强:三星电子发布会直击
  20. 核密度估计_拔剑-浆糊的传说_新浪博客

热门文章

  1. Winform开发框架之通用人员信息管理实现代码介绍
  2. Convert函数应用格式化日期
  3. eclipse 插件开发过程中遇到的一堆问题(急待解决)
  4. leetcode算法题--子集
  5. leetcode算法题--将数字变成 0 的操作次数
  6. 使用 TiKV 构建分布式类 Redis 服务
  7. centos下部署启动elasticsearch错误集合与解决方案
  8. POJ1990:MooFest——题解
  9. 设计模式之一:单例模式
  10. 企业网络安全之安全维度