我正在使用System.Net.HttpClient从服务器读取流。我遇到的问题是流被阻塞,直到整个响应在内存中。我想开始处理响应,因为数据来自网络。在解析之前等待整个响应太慢了。
HttpClient client = new HttpClient();
...
await client.GetStreamAsync();
/* another way I tried */
HttpResponseMessage response = await clientGetAsync();
if(response.StatusCode == HttpStatusCode.OK) {
await response.Content
}
await response.Content.ReadAsStreamAsync();
有没有一种方法,它不必与HttpClient一起使用Windows可移植类库来获取流来自网络的流?
答案 0 :(得分:1)
您必须将SendAsync
与HttpCompletionOption.ResponseHeadersRead
一起使用,以防止HttpClient
缓冲响应流。使用此选项后,ReadAsStreamAsync
将返回实际网络流而不是MemoryStream的包装器。