欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 【原创】C# HttpClient 读取流数据的问题

【原创】C# HttpClient 读取流数据的问题

2025/3/11 11:01:28 来源:https://blog.csdn.net/u013667796/article/details/146030624  浏览:    关键词:【原创】C# HttpClient 读取流数据的问题

默认情况下HttpClient中有缓存,在读取流数据的时候,往往要等一小会儿,然后读出一大堆。
我们在请求OpenAI类的大模型的时候,往往要一边读取一边显示(输出),这时候需要禁止HttpClient 中内置的缓存功能。

其实就是在一步请求的时候加了一个“HttpCompletionOption.ResponseHeadersRead”参数而已。
示例代码如下

using System.Net.Http;
using System.Text;
using System.Threading.Tasks;public async Task SendPostRequestAsync(string url, string jsonData)
{using (HttpClient client = new HttpClient()){// 创建请求内容var content = new StringContent(jsonData, Encoding.UTF8, "application/json");// 创建 HttpRequestMessage 对象var request = new HttpRequestMessage(HttpMethod.Post, url){Content = content};// 发送请求并指定 HttpCompletionOption.ResponseHeadersReadusing (HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)){response.EnsureSuccessStatusCode();// 获取响应流using (Stream stream = await response.Content.ReadAsStreamAsync()){// 在这里处理流数据using (var reader = new StreamReader(stream)){string line;while ((line = await reader.ReadLineAsync()) != null){Console.WriteLine(line); // 输出每行数据}}}}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词