乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      WebAPI-HTTP編程模型

       精品唯居 2021-04-12

      帶著問題去思考,大家好!
      它是什么?它包含什么?它能干什么?

      消息

      HTTP編程模型的核心就是消息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和響應消息。

      HttpMethod類包含了一組靜態(tài)屬性:

         private static readonly HttpMethod getMethod = new HttpMethod("GET");
      
              private static readonly HttpMethod putMethod = new HttpMethod("PUT");
      
              private static readonly HttpMethod postMethod = new HttpMethod("POST");
      
              private static readonly HttpMethod deleteMethod = new HttpMethod("DELETE");
      
              private static readonly HttpMethod headMethod = new HttpMethod("HEAD");
      
              private static readonly HttpMethod optionsMethod = new HttpMethod("OPTIONS");
      
              private static readonly HttpMethod traceMethod = new HttpMethod("TRACE")

      標頭

      • HttpRequestHeaders:包含請求標頭
      • HttpResponseHeaders:包含響應標頭
      • HttpContentHeaders:包含內(nèi)容標頭

       

      消息內(nèi)容

      HttpContent包含了非虛擬公共方法

      • Task<string> ReadAsStringAsync()
      • Task<byte[]> ReadAsByteArrayAsync()
      • Task<Stream> ReadAsStreamAsync()
      • Task CopyToAsync(Stream stream, TransportContext context)

      第一種方式用于推送方式訪問原始的消息內(nèi)容。將一個流傳遞給CopyAsync方法,然后把消息內(nèi)容推送到這個流中

      using(car client=new HtppClient())
      {
          var response=
                await client.GetAsync("",HttpCompletionOption.ResponseHeadersRead);
      response.EnsureSuccessStatusCode();
      var ms=new MemorySteam();
      await response.Content.CopyToAsync(ms);
      Assert.True(ms.Length>0);
      }

      也可以使用ReadAsStreamAsync().拉取方式訪問。這個方法異步返回一個流

                  using(var client=new HttpClient())
                  {
                      var response = await client.GetAsync("");
                      response.EnsureSuccessStatusCode();
                      var steam = await response.Content.ReadAsStreamAsync();
                      var buffer = new byte[2 * 1024];
                      var len = await steam.ReadAsync(buffer, 0, buffer.Length);
                     
                  }

      ReadAsStringAsync和ReadAsByteArrayAsync-異步提供消息內(nèi)容的緩沖副本。ReadAsStringAsync返回原始的字節(jié)內(nèi)容,ReadAsByteArrayAsync將內(nèi)容解碼為字符串返回

      當然也可以擴展為

      public override Task<object> ReadContentAsync(HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters, IFormatterLogger formatterLogger)

       

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多