<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      HttpClient 使用(二)流式請求

      原文地址:http://www.rzrgm.cn/ysmc/p/18780674

        近年AI風靡全球,我們日常見到的最多的就是跟AI聊天,極大減少了我們的搜索時間,不過大家也要注意甄別AI回答的正確性,身體不舒服還是老老實實看醫生。

        AI聊天的輸出是逐字輸出的,有些小伙伴就很好奇這個是怎么實現的,比較簡單的就是SSE,高級點的是WebSocket,本文我們先講一下SSE。

      SSE

      Server-Sent Events,基于 HTTP 協議的推送技術,服務器可以向目標持續推送數據,與 WebSocket 不同,它是單向的。

      秉承一向的慣例,直接上代碼

      服務端

      這里讀取一個本地文件,每100ms往客戶端發送5個字符,需要注意的一點是,返回的 ContentType = "application/octet-stream",你需要告訴客戶端返回的是一個流

       1 [HttpGet("GetStream")]
       2 public async Task GetStream()
       3 {
       4     string filePath = "文檔.txt";
       5     Response.ContentType = "application/octet-stream";
       6     var reader = new StreamReader(filePath);
       7     var buffer = new Memory<char>(new char[5]);
       8     int writeLength;
       9     //每次讀取5個字符寫入到流中
      10     while ((writeLength = await reader.ReadBlockAsync(buffer)) > 0)
      11     {
      12         if (writeLength < buffer.Length)
      13         {
      14             buffer = buffer[..writeLength];
      15         }
      16         var value = buffer.ToString();
      17         await Response.WriteAsync(value);
      18         await Task.Delay(100);
      19     }
      20 }

      讀取的文檔內容

       客戶端

       1 [HttpGet("TestGetStream")]
       2 public async Task TestGetStream([FromServices] IHttpClientFactory httpClientFactory)
       3 {
       4     using var client = httpClientFactory.CreateClient();
       5     using var stream = await client.GetStreamAsync("http://localhost:5237/api/Test/GetStream");
       6     using var streamReader = new StreamReader(stream);
       7     var buffer = new char[5];
       8     int writeLength;
       9     while ((writeLength = await streamReader.ReadBlockAsync(buffer, 0, buffer.Length)) > 0)
      10     {
      11         Console.Write(new string(buffer, 0, writeLength));
      12     }
      13     Console.WriteLine("\nEND");
      14 }

       效果

        這里我們使用控制臺簡單展示一下

       

      posted @ 2025-03-25 12:56  一事冇誠  閱讀(13445)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码福利写真片视频在线播放| 国产亚洲精品久久综合阿香| 人妻av无码一区二区三区| 国产精品黄大片在线播放| 国产免费一区二区不卡| 秋霞电影院午夜无码免费视频| 成在线人永久免费视频播放| 亚洲综合无码明星蕉在线视频| 精品视频国产狼友视频| 性XXXX视频播放免费直播| 999国产精品999久久久久久| 阿坝| 在线精品国精品国产尤物| 中文字幕亚洲制服在线看| 国产欧美日韩高清在线不卡| 色呦呦九九七七国产精品| 国产不卡精品视频男人的天堂| 色8久久人人97超碰香蕉987| 西盟| 国产成人午夜福利院| 亚洲欧洲色图片网站| 亚洲av日韩在线资源| 熟妇无码熟妇毛片| 777米奇色狠狠888俺也去乱| 国产一国产精品免费播放| 在线 欧美 中文 亚洲 精品| 在线 国产 欧美 专区| 精品一区二区三区少妇蜜臀| 亚洲综合91社区精品福利| 日本不卡码一区二区三区| 亚洲欧洲日韩国内高清| 国产影片AV级毛片特别刺激| 国产av综合一区二区三区| 国产情侣激情在线对白| 国产欧美另类久久久精品不卡| 阿荣旗| 2019亚洲午夜无码天堂| 久久人妻国产精品| 欧美高清一区三区在线专区| 国产亚洲精品久久久久婷婷图片 | 性欧美暴力猛交69hd|