博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows 8 httpclient 联网方式
阅读量:5059 次
发布时间:2019-06-12

本文共 2309 字,大约阅读时间需要 7 分钟。

基本技术点    自己记录用于复习

开头顺便记下  解析 xml的 正则表达式

                XElement element = XElement.Parse(s);

                OutputList.ItemsSource =
                    (from c in element.Elements("item")
                     select c.Attribute("name").Value
                    );

很简单  from  和select  语句 很方便

 

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 =  ";

       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[i] = 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中 

 

 

 

 

转载于:https://www.cnblogs.com/zey23/archive/2012/11/09/2762909.html

你可能感兴趣的文章
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
【贪心+DFS】D. Field expansion
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
IOS-每个程序员的编程之路上都应该看这11本书
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>