zoukankan      html  css  js  c++  java
  • 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中

  • 相关阅读:
    数据库事务隔离级别+Spring 声明性事务隔离级别
    (面试题)如何查找Oracle数据库中的重复记录
    Spring提供的线程池支持--百度文库
    (面试题)输出下列程序结果(考察字符串与其他类型+连接)
    (面试)有两个木桶,一个3斤,一个5斤,水无限,要怎么样得到精确地4斤水
    (面试)涉及到继承和类加载
    (面试题)用折半查找法在一组整形数组中查找某个数据
    (面试)写出下面switch语句的输出结果
    HTML 鼠标坐标和元素坐标
    HTML5 元素属性介绍
  • 原文地址:https://www.cnblogs.com/wgscd/p/4849606.html
Copyright © 2011-2022 走看看