windows 8 中 使用 httpclient

基本技术点

 
  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中

转载于:https://www.cnblogs.com/wgscd/p/4849606.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值