HttpClient.getAsync()内存不足异常

时间:2014-01-16 17:59:20

标签: c# json out-of-memory dotnet-httpclient

我有一个从Web服务获取大量JSON的函数。这个数据有时可能很大,千兆字节。我的电话看起来像这样。

        try
        {
            using (var httpClient = NewHttpClient())
            {
                var response = httpClient.GetAsync(endpoint).Result;
                return response;
            }
        }
        catch(Exception ex)
        {
            //Do Stuff
        }

当数据很大时,会抛出内存不足异常。我相信这是因为响应消息实际上比HttpResponseMessage允许它更大。有没有办法在一段时间内只得到一些消息?我确信它以前已经完成,但我无法找到谷歌和/或斜杠的任何东西。提前感谢您的建议。

1 个答案:

答案 0 :(得分:6)

只需获取流并将其写入文件,以便稍后处理,

using (var httpClient = new HttpClient())
{
    var stream = await httpClient.GetStreamAsync(url);
    stream.CopyToAsync(fileStream)
}