c# - HttpClient.getAsync() 内存不足异常

标签 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 允许的要大。有没有办法一次只获取消息的一部分?我确信以前已经做过,但我无法通过谷歌和/或slashdot找到任何东西。感谢您提前的建议。

最佳答案

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

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

关于c# - HttpClient.getAsync() 内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21169370/

相关文章:

c# - 在 asp.net View 中显示对象列表

c# - 确定小数是否可以存储为 int32

javascript - 使用 Typescript 声明了一个类型,但 Javascript 在内部使用了错误的类型

javascript - 如何处理外部 api JSON 而不是 JSONP

android - 在安卓上旋转图像。有没有更好的办法?

java - 除了 OOM 之外,还有什么可以在 Linux 上杀死 Java 进程?

c# - 如何将多个参数传递给 C# 线程?

c# - Unity 后处理 PostProcessEffectRenderer 显示在编辑器中但不在构建中

java - osgi.wiring.package; (&(osgi.wiring.package = org.json)(版本> = 0.0.0)) Unresolved 要求:

java - 实现 SparseMatrix 的有效方法