Windows Phone 十六、HttpClient

HttpClient 对象也可以实现网络请求

相对于 HttpWebRequest 对象来说,HttpClient 操作更简单,功能更强大

HttpClient 提供一系列比较简单的API来实现基本的请求

同时也支持身份验证和异步操作

注意 Windows Runtime 平台中有两个 HttpClient 类型,调用方式几乎相同,以下内容使用 Windows.Web.Http 中的 HttpClient

发送数据格式

HttpFormUrlEncodedContent

HttpMultipartContent

HttpMultipartFormDataContent

HttpBufferContent

HttpStreamContent

HttpStringContent

设置 Cookie:client.DefaultRequestHeaders.Add("Cookie", "cookie_key1=CookieValue1; cookie_key2=CookieValue2;");

1     <Grid>
2         <TextBox x:Name="txtUrl"/>
3         <Button Content="DOWN" Click="Button_Click"/>
4     </Grid>
 1         protected async override void OnNavigatedTo(NavigationEventArgs e)
 2         {
 3             HttpClient client = new HttpClient();
 4             client.DefaultRequestHeaders.Authorization = new Windows.Web.Http.Headers.HttpCredentialsHeaderValue("Basic", "111:222");
 5             //GET请求
 6             var result = await client.GetStringAsync(new Uri("http://localhost:7080/index.ashx"));
 7
 8             var dict = new Dictionary<string, string>();
 9             dict.Add("ke1", "val1");
10             dict.Add("ke2", "val2");
11             //await client.PostAsync(new Uri("http://localhost:7080/index.ashx"), new HttpFormUrlEncodedContent(dict));
12             //await client.PostAsync(new Uri("http://localhost:7080/index.ashx"), new HttpStringContent("abc"));
13
14             var file = await ApplicationData.Current.LocalCacheFolder.CreateFileAsync("1.txt", CreationCollisionOption.ReplaceExisting);
15             await FileIO.AppendTextAsync(file, "abcdefghijklmnopqrstuvwxyz");
16             var fileStream = await file.OpenAsync(FileAccessMode.Read);
17             await client.PostAsync(new Uri("http://localhost:7080/index.ashx"), new HttpStreamContent(fileStream));
18         }
19
20         private async void Button_Click(object sender, RoutedEventArgs e)
21         {
22             //定义请求Uri
23             var requestUri = new Uri(txtUrl.Text);
24             //创建一个Http请求客户端HttpClient
25             var client = new HttpClient();
26             //创建定期监视对象
27             IProgress<HttpProgress> progress = new Progress<HttpProgress>((p) =>
28             {
29                 //此处参数P,可以获取到进度相关信息
30                 System.Diagnostics.Debug.WriteLine(p.BytesReceived + "/" + p.TotalBytesToReceive);
31             });
32             //在异步任务中加入进度监控
33             HttpResponseMessage response = await client.GetAsync(requestUri).AsTask(progress);
34         }
时间: 2024-10-23 14:51:53

Windows Phone 十六、HttpClient的相关文章

秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5136035 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8646902 欢迎关注微博:http://weibo.com/MoreWindows 在<秒杀多线程系列>的前十五篇中介绍多线程的相关概念,多线程同步互斥问题<秒杀多

quick-cocos2d-x 学习系列之十六 塔防完结

quick-cocos2d-x 学习系列之十六 塔防完结 1.  math2d.lua文件 该文件实现了常用的数学函数. Dist函数实现两点的距离. radians4point求两点的夹角(弧度) pointAtCircle求圆上一个点的位置 pointAtLineToPoint求线段上与指定点距离最近的点 degrees2radians角度转换为弧度 radians2degrees弧度转换为角度 2.  utils.lua文件 2.1         drawCircle 返回newCirc

NeHe OpenGL教程 第四十六课:全屏反走样

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十六课:全屏反走样 全屏反走样 当今显卡的强大功能,你几乎什么都不用做,只需要在创建窗口的时候该一个数据.看看吧,驱动程序为你做完了一切. 在图形的绘制中,直线的走样是非常影响美观的,我们可以使用反走样解决这个问题.在众多的解决

winform学习日志(二十六)----------控件treeview使用

一:实现功能,获得选中节点,在选中节点下添加节点,折叠,展开,删除,得到选中节点下checked项,选中根节点其下节点也选中,图标.上图 二:相关代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windo

我的MYSQL学习心得(十六)

我的MYSQL学习心得(十六) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 我的MYSQL学习心得(九) 我的MYSQL学习心得(十) 我的MYSQL学习心得(十一) 我的MYSQL学习心得(十二) 我的MYSQL学习心得(十三) 我的MYSQL学习心得(十四) 我的MYSQL学习心得(十五) 一步一步

CCNA实验三十六 GRE(通用路由封装) &nbsp;

CCNA实验三十六 GRE(通用路由封装) 环境:Windows XP .Packet Tracert5.3 目的:了解GRE的使用,掌握如何配置GRE. 说明: GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP 和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输.GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议. Tunnel

万能数据库查询分析器使用技巧之(十六)

--- 6.02版本新增的SQL 执行计划数据库连接自动恢复                              马根峰                        (广东联合电子服务股份有限公司, 广州 510300) 摘要          本文详细地介绍了"万能数据库查询分析器",中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>6.02 中新增的SQL "执行计划"数据库连接自动恢复功能."

ActionScript3游戏中的图像编程(连载十六)

1.3.2 软件中的拾色器如何实现HSB的色彩空间模型 阅读本书的朋友恐怕很少有机会见到圆柱形的三维取色器,而HSB模式却是一个立体的空间.那么,软件里的颜色拾取器是如何在平面里体现出3D坐标系的呢?让我们从Windows调色板开始研究.图 1.22是Windows系统调色板的界面,抛开左侧的颜色列表不谈,我们可以把Windows调色板分为两个部分:一个二维的平面和一个一维的滑块.乍一看似乎跟之前的圆柱体空间扯不上任何关系,不过有没发现,最右侧那个一维的条是不是跟圆柱体的母线很像,从上而下呈现出

我使用过的Linux命令之hexdump - ”十六“进制查看器(转载)

转载:http://codingstandards.iteye.com/blog/805778 本文链接:http://codingstandards.iteye.com/blog/805778   (转载请注明出处) 用途说明 hexdump命令一般用来查看”二进制“文件的十六进制编码,但实际上它的用途不止如此,手册页上的说法是“ascii, decimal, hexadecimal, octal dump“,这也就是本文标题为什么要将”十六“给引起来的原因,而且它能查看任何文件,而不只限于二