c#:如何发布异步请求并使用 httpclient 获取流?

标签 c# asynchronous stream httpclient

我需要向服务器发送异步请求并从响应流中获取信息。 我正在使用 HttpClient.GetStreamAsync(),但应该使用 POST 的服务器响应。有类似PostStreamAsync()的方法吗?谢谢。

最佳答案

如果你想使用 HttpClient 来传输大数据,那么你不应该使用 PostAsync 因为 message.Content.ReadAsStreamAsync 会读取整个流到内存中。相反,您可以使用以下代码块。

var message = new HttpRequestMessage(HttpMethod.Post, "http://localhost:3100/api/test");
var response = await client.SendAsync(message, HttpCompletionOption.ResponseHeadersRead);
var stream = await response.Content.ReadAsStreamAsync();

这里的关键是 HttpCompletionOption.ResponseHeadersRead 选项,它告诉客户端不要将整个内容读入内存。

关于c#:如何发布异步请求并使用 httpclient 获取流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067355/

相关文章:

php - 我如何在不等待ssh2的情况下强制PHP加载

c# - 即时修改 SQL 结果?

javascript - node.js 与异步编程回文

javascript - 仅在不可执行的异步函数完成后才执行代码

java - 计算下载速度

java - 使用 java 流将包含标题和行的 csv 文件转换为 hashmap 数组

c# - 如何将 Expression 转换为 MethodBuilder 实例方法?

c# - EF5、SQL Server、经度和纬度

c# - 一般而言,Angular 2 和 .Net Core 2.0 应用程序如何相互交互以及开发周期?

python - 最大化并行请求数 (aiohttp)