基本技术点

 

  windows 8 中 使用 httpclient 代替 windows phone 中的 httpwebclient , 使用方法 也有些不同 。

  下面是windows 8种使用 httpclient的各种方式

  a 以get的方式 对服务器发起请求 获得string

  HttpResponseMessage response = await httpClient.GetAsync(resourceUri); // await关键字 异步加载 * resourceUri 是请求的Url

  string statues_string = ((int)response.StatusCode) + " " + response.ReasonPhrase + Environment.NewLine; // 服务器返回 请求的 状态

  responseBodyAsText = await response.Content.ReadAsStringAsync(); //将 请求返回的转化为 string

  

  b 以get的方式 对服务器发去请求 接受返回来的流

  string resourceAddress = http://www.baidu.com";

  HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, resourceAddress);

  HttpResponseMessage response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

  OutputField.Text = response.StatusCode + " " + response.ReasonPhrase + Environment.NewLine;

  StringBuilder responseBody = new StringBuilder();

  using (Stream responseStream = await response.Content.ReadAsStreamAsync())

  {

  byte[] responseBytes = new byte[responseStream.Length];

read = await responseStream.ReadAsync(responseBytes, 0, responseBytes.Length);

  }

  c 以post的方式 上传 string

  HttpResponseMessage response = await httpClient.PostAsync(resourceAddress, new StringContent(RequestBodyField.Text));

  catch (HttpRequestException hre)

{

rootPage.NotifyUser("Error", NotifyType.ErrorMessage);

OutputField.Text = hre.ToString();

}

  catch (TaskCanceledException)

{

rootPage.NotifyUser("Request canceled.", NotifyType.ErrorMessage);

   }

  finally {

    Helpers.ScenarioCompleted(StartButton, CancelButton);    

     }             //各种异常处理

  

  d 以post的方式 上传流数据

  byte[] subData = new byte[size];

  for (int i = 0; i < subData.Length; i++)

  {

subData = 64;

}

  Stream stream=(Stream)new MemoryStream(subData);

  StreamContent streamContent = new StreamContent(stream);

  string resourceAddress =“http://www.baidu.com”;

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, resourceAddress);

  request.Content = streamContent;

request.Headers.TransferEncodingChunked = true; // 假设我们不知道内容的长度

  HttpResponseMessage response = await httpClient.SendAsync(request); //发送数据

  若消息返回来后 数据都在response中

windows 8 中 使用 httpclient的更多相关文章

  1. 详解 UWP (通用 Windows 平台) 中的两种 HttpClient API

    UWP (通用 Windows 平台) 应用开发者在构建通过 HTTP 与 Web 服务或服务器断点交互的应用时,有多种 API 可以选择.要在一个托管 UWP 应用中实现 HTTP 客户端角色,最常 ...

  2. Windows Store App 网络通信 HttpClient

    HttpClient类包含在System.Net.Http命名空间中,是向以URI标识的网络资源发送HTTP请求和接收HTTP响应的基类.在HTTP请求中使用该类可以向Web服务发送GET.POST等 ...

  3. gvoory脚本中关于HttpClient使用详解实例

    一.gvoory脚本中关于HttpClient使用详解实例 HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=n ...

  4. 在 Windows Phone 中,为 Grid 添加 Tilt 效果

    在 Windows Phone 中,Tilt 效果是比较经典的效果,我们可以很简单的为按钮等控件添加这样的效果(使用 Windows Phone Toolkit 的Tilt 效果),但是,如果我们想要 ...

  5. 如何托管ASP.NET Core应用到Windows Service中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:正在构思一个中间件的设计,考虑是否既可以使用最新的技术,也可以兼顾传统的部署模式.所以有 ...

  6. UEFI+GPT模式下的Windows系统中分区结构和默认分区大小及硬盘整数分区研究

    内容摘要:本文主要讨论和分析在UEFI+GPT模式下的Windows系统(主要是最新的Win10X64)中默认的分区结构和默认的分区大小,硬盘整数分区.4K对齐.起始扇区.恢复分区.ESP分区.MSR ...

  7. 虚拟机和windows主机中的文件共享

    22:54 2015/12/22 虚拟机和windows主机中的文件共享:特别推荐:我的一个老师特别推荐的方法:在windows安装SSH Secure File Transfer Client,直接 ...

  8. Windows编程中UNICODE和_UNICODE定义问题

    Windows编程中UNICODE和_UNICODE定义问题 先转一篇文章: 初学Windows SDK编程时碰到过这个问题,相信很多初学Windows编程的人也都碰到过,后来慢慢搞明白些了,但有时别 ...

  9. 如何在windows计划中调用备份sharepoint2010网站集的powershell脚本

    最近有个项目需要在在windows计划中使用powershell脚本备份sharepoint2010网站集,打开sharepoint的powershell执行命令管理界面的属性 查看: C:\Wind ...

随机推荐

  1. Vue-学习。

    ---恢复内容开始--- Vue.js 与 Angular.js 非常相似,只要学过了Angular.js然后在学Vue.js就非常的简单. 什么是Vue? 相比Angularjs和ReactJS,V ...

  2. The operation names in the portType match the method names in the SEI or Web service implementation class.

    The Endpoint validation failed to validate due to the following errors: :: Invalid Endpoint Interfac ...

  3. REST framework 视图层

    我们之前写的  get  post  请求 要写很多 我们现在可以使用rest——framework给我们封装好的类 GenericAPIView 给我们提供了自动匹配验证的信息内部封装 from r ...

  4. HelloAndroid

    Hello Android 代码 button.setOnClickListener { val alertDialog = AlertDialog.Builder(this) alertDialog ...

  5. python多进程(三)

    消息队列 消息队列”是在消息的传输过程中保存消息的容器. 消息队列最经典的用法就是消费者和生成者之间通过消息管道来传递消息,消费者和生成者是不通的进程.生产者往管道中写消息,消费者从管道中读消息.   ...

  6. JavaScript的DOM操作获取元素的大小

    通过 style 内联获取元素的大小 需要注意的是style 获取只能获取到行内 style 属性的 CSS 样式中的宽和高,如果有获取:如果没有则返回空. <!DOCTYPE html> ...

  7. grep命令.md

    grep命令 简介 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Prin ...

  8. python第四课——运算符

    一.python中的运算符: 什么是运算符? 就是计算机语言中用来参与运算的符号!! 1.算数运算符: 符号:+ - * / %(取余,取模) //(取整) **(开方) 2.比较运算符: 特点:比较 ...

  9. 使用transient关键字解决ehcache序列化错误

    使用Ehcache时发现个不起眼的小问题 在一个Model中有以下代码: public class MyModel implements Serializable { private static f ...

  10. Centos7安装anaconda3

    Centos7安装anaconda3 1. 安装bunzip2 yum install bunzip2 2. 下载anaconda3 wget https://repo.anaconda.com/ar ...