WP7 网络请求之WebClient

WebClient运行于UI线程,支持编码方式的设定、支持POST/GET方式提交、不支持同步请求、不支持超时设定。WP7会缓存URL链 接,所以两次请求,尽管网络端数据发生了变化,得到的还会是同样的数据,这点要特别注意,避免的方式是在URL的末端,加一个当前时间的参数,这样每次请 求的url都不一样,从而避免的缓存的影响。另外要说的是,WebClient不适合大数据量的的请求,那样会造成UI线程的繁忙,最终导致无法响应用户 的操作。当然WebClient也有它的优点,因为经过了封装,用起来方面,也无需做太多的设置,适合小数据量的请求。

实例1:用post方式提交数据

Uri url = new Uri(“http//:www.163.com”);
string str = "name=name1&mo=" + HttpUtility.UrlEncode("中文数据和特殊字符最好编码一下") + "&Cache=" + System.DateTime.Now;

WebClient webClient = new WebClient();
webClient.Encoding = System.Text.UTF8Encoding.UTF8;
webClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";

//webClient.UploadProgressChanged += new UploadProgressChangedEventHandler(webClient_UploadProgressChanged);//这个是
webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(CardInfoUp_Completed);//这里是回调函数
webClient.UploadStringAsync(url, "POST", str);

private void CardInfoUp_Completed(object sender, UploadStringCompletedEventArgs e)
{
if(e.Error==null)
{
// XElement strXml = XElement.Parse(e.Result);//这是网络返回的数据
MessageBox.Show("成功!");
}
else
{
MessageBox.Show(e.Error.Message);
}
}

如果想代码更简洁一些,可以使用匿名函数,像下面这样:

WebClient webClient = new WebClient();
webClient.Encoding = System.Text.UTF8Encoding.UTF8;
webClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
webClient.UploadStringCompleted += (s, o) =>
{
if (o.Error == null)
{
//string data=o.Result ;//这是网络返回的数据
MessageBox.Show("成功");
}
else
{
throw new Exception(o.Error.Message);
}
};
webClient.UploadStringAsync(url, "POST", str);

实例2:打开网页,可以带参数,如果服务器返回的内容经过加工,可以使用这种方式变相下载数据

WebClient webClient = new WebClient();
webClient.OpenReadAsync(url); //在不阻止调用线程的情况下,从资源返回数据
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(CardInfoDown_Completed); //异步操作完成时发生

private void CardInfoDown_Completed(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
using (System.IO.StreamReader reader = new System.IO.StreamReader(e.Result))
{
string strStream = reader.ReadToEnd();//这里是返回的数据
MessageBox.Show("下载成功");
}
}
else
{
MessageBox.Show(e.Error.Message);
}
}

下面是简洁的写法:

WebClient webClient = new WebClient();
webClient.Encoding = System.Text.UTF8Encoding.UTF8;
webClient.OpenReadAsync(url); //在不阻止调用线程的情况下,从资源返回数据
webClient.OpenReadCompleted += (s,o) =>
{
if (o.Error == null)
{
//指定以UTF-8方式读取流
using (System.IO.StreamReader reader = new System.IO.StreamReader(o.Result, System.Text.UTF8Encoding.UTF8))
{
string strStream = reader.ReadToEnd();//这里是返回的数据
MessageBox.Show("下载成功");
}
}
else
{
MessageBox.Show(o.Error.Message);
}
};

实例2:下载数据,这个暂时还没用到,先预留位置在此

 

http://www.cnblogs.com/dyg540/articles/2514773.html

转载于:https://www.cnblogs.com/zziss/archive/2012/10/23/2736018.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notebook安装 nbextensions 插件

安装 nbextensions 插件 一、打开Anaconda Prompt窗口,执行第一个命令,用于安装nbextensions: pip install jupyter_contrib_nbextensions 二、再执行第二个命令,用于安装 javascript and css files jupyter contrib nbextens…

LeetCode MySQL 1084. 销售分析III

文章目录1. 题目2. 解题1. 题目 Table: Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是这个表的主键Tabl…

15.使用using和try/finally来做资源清理

只有是实现了IDispose接口的类型的调用都应使用using 或者try/finally释放对象。转载于:https://www.cnblogs.com/movemoon/archive/2012/10/24/2736571.html

数据分析常用Python库:数值计算、可视化、机器学习等领域

镜像pip安装 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn…

LeetCode MySQL 1322. 广告效果

文章目录1. 题目2. 解题1. 题目 表: Ads ------------------------ | Column Name | Type | ------------------------ | ad_id | int | | user_id | int | | action | enum | ------------------------ (ad_id, user_id) 是该表的主键…

linux下练习 c++ 容器set、multimset的特性

print.h //print.h#include <iostream>using namespace std;#ifndef print_fun#define print_funtemplate<typename T>///显示序列数据void print(T b,T e,char c ){bool isExitfalse;while (b!e){cout<<*b<<c;isExittrue;}if(isExit) cout<<end…

Python数据预处理数据的方法总结(使用sklearn-preprocessing)

文章目录数据预处理思路数据预处理方法1 标准化&#xff1a;去均值&#xff0c;方差规模化2 规模化稀疏数据3 规模化有异常值的数据4 正则化Normalization5 二值化–特征的二值化6 类别特征编码7 弥补缺失数据7 创建多项式特征数据预处理思路 1.首先要明确有多少特征&#xff…

LeetCode MySQL 1179. 重新格式化部门表

文章目录1. 题目2. 解题1. 题目 部门表 Department&#xff1a; ------------------------ | Column Name | Type | ------------------------ | id | int | | revenue | int | | month | varchar | ------------------------ (id, mo…

消息推送生命周期_一套完整的APP推送体系方案|附思维导图

写这篇文章的初衷是前几天在脉脉上看到一个问题&#xff1a;线上app push故障&#xff0c;该不该给用户发送补救推送信息&#xff1f;联想到自己当初作为实习菜鸟也犯过类似的推送事故&#xff0c;好在补救处理尚可&#xff0c;最终结果不错。这次仔细看了问题下的每一条回答&a…

七、jdk工具之jconsole命令(Java Monitoring and Management Console)

目录 一、jdk工具之jps&#xff08;JVM Process Status Tools&#xff09;命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java Virtual Machine Statistics Monitoring Tool) 四、jdk工具…

kaggle共享单车数据分析及预测(随机森林)

文章目录一、数据收集1.1、项目说明1.2、数据内容及变量说明二、数据处理2.1、导入数据2.2、缺失值处理2.3、Label数据(即count)异常值处理2.4、其他数据异常值处理2.5、时间型数据数据处理三、数据分析3.1 描述性分析3.2、探索性分析3.2.1、整体性分析3.2.2、相关性分析3.2.3、…

LeetCode MySQL 197. 上升的温度

文章目录1. 题目2. 解题1. 题目 给定一个 Weather 表&#xff0c;编写一个 SQL 查询&#xff0c;来查找与之前&#xff08;昨天的&#xff09;日期相比温度更高的所有日期的 Id。 --------------------------------------------- | Id(INT) | RecordDate(DATE) | Temperature…

c 语言输出后不关闭_穿书+娱乐圈 |再不跑路就要被迫C位出道了花瓶女配和影帝组CP后豪门娇美人是爽文剧本...

书单再不跑路就要被迫C位出道了花瓶女配和影帝组CP后豪门娇美人是爽文剧本1再不跑路就要被迫C位出道了作者&#xff1a;墨流霜文案&#xff1a;顾星染一觉醒来发现自己是某小说炮灰&#xff0c;未来会嫁给某女主爱慕者&#xff0c;度过悲惨的下半生。她为了逆天改命&#xff0c…

基于FPGA的图像处理(一)--System Generator介绍

计算机视觉系统通常需要进行大量的信息处理才能够得到所需要的信息。目前主要有CPU、GPU、ASIC、DSP、FPGA等计算平台。 常用的计算机视觉系统通过通用计算机进行视觉信息处理&#xff0c;但是&#xff0c;由于CPU的计算能力有限&#xff0c;对于一些计算复杂度很高的视觉算法&…

营销组合(4P营销)分析案例:采用SPSS+Excel进行分析

文章目录1、研究目的&#xff1a;营销决策2、研究内容&#xff1a;营销组合分析2.1规模预测分析2.1.1 预测思路与方法2.1.2季节分解法预测市场规模2.2 产品属性分析2.2.1 KANO模型基本思想2.2.2 KANO模型的数据分析步骤2.2.2.1 数据准备2.2.2.2 Better—Worse系数矩阵2.3 定价决…

LeetCode MySQL 1445. 苹果和桔子

文章目录1. 题目2. 解题1. 题目 表: Sales ------------------------ | Column Name | Type | ------------------------ | sale_date | date | | fruit | enum | | sold_num | int | ------------------------ (sale_date,fruit) 是该表主…

台达plc自由口通讯_台达PLC和ABB机器人Devicenet通讯

之前有经常遇见台达PLC和第三方机器人进行Devicenet通讯&#xff0c;故作以下整理&#xff0c;方便再次使用。以台达模块DVPDNET-SL与ABB IRC5通讯为例&#xff0c;方法如下&#xff1a;1.硬件连线将PLC模块端和Robot端按照引脚定义接好网线。2.设定模块地址。3.设定模块通讯速…

关于Unix哲学

今天看了一篇文章关于Unix哲学的&#xff0c;写的不错这里做个摘录。 原文地址&#xff1a;http://www.ruanyifeng.com/blog/2009/06/unix_philosophy.html 1. 清晰原则。 代码要写得尽量清晰&#xff0c;避免晦涩难懂。清晰的代码不容易崩溃&#xff0c;而且容易理解和维护。重…

电子商城战略分析(采用定性与定量分析方法)

文章目录研究目的&#xff1a;战略选择研究内容&#xff1a;环境分析宏观环境分析市场环境分析竞争环境分析定性与定量分析方法定性&#xff1a;SWOT分析定量&#xff1a;内外因素评价矩阵内外因素数据获取内外因素得分计算评分的计算权重的计算最终得分的计算制作战略选择矩阵…

LeetCode MySQL 1393. 股票的资本损益

文章目录1. 题目2. 解题1. 题目 Stocks 表&#xff1a; ------------------------ | Column Name | Type | ------------------------ | stock_name | varchar | | operation | enum | | operation_day | int | | price | int | ------------…