Windows PCL HttpClient

时间:2013-04-26 14:08:12

标签: c# windows-phone-8 .net-4.5 async-await dotnet-httpclient

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

1 个答案:

答案 0 :(得分:1)

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