我需要向服务器发送异步请求并从响应流中获取信息。 我正在使用 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/