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中

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/wgscd/p/4849606.html
Copyright © 2011-2022 走看看