0

我正在使用 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 可移植类库来获取来自网络的流?

4

1 回答 1

1

您必须使用SendAsyncwithHttpCompletionOption.ResponseHeadersRead来防止HttpClient缓冲响应流。使用此选项后,ReadAsStreamAsync将返回实际网络流的包装器,而不是 MemoryStream。

于 2013-04-26T14:44:15.183 回答