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

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

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

当数据很大时,这将引发内存不足异常。我相信这是因为响应消息实际上大于HttpResponseMessage允许的大小。有没有办法一次只获取部分消息?我敢肯定它已经完成了,但是我无法用google和/或slashdot找到任何东西。预先感谢您的建议。

参考方案

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

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

使用HttpClient时出现未经授权的错误 - c#

using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Text; namespace ConsoleProgram { public class C…

C#和泛型:如何处理基于类型的处理? - c#

我是泛型新手,我正在尝试为我的项目制作一个泛型HTTP GET方法(并可能将其扩展为也可以处理POST / PUT)。当响应基于字符串时,以下内容似乎可以正常工作:private async Task<T> HttpGetAsync<T>(Uri uri) { var httpRequestMessage = new HttpRequ…

HttpClient和套接字用尽-澄清吗? - c#

This article表示我们应该使用静态的HttpClient以便重用套接字。但是那里的第一条评论说存在DNS更改识别问题,解决方案在另一篇文章here中:第二篇文章建议:var client = new HttpClient(); client.DefaultRequestHeaders.ConnectionClose = true; 哪个控制Keep…

System.out.printf不打印整数参数 - java

我是Java编程的新手,无法从另一个类返回方法。这两个类都可以编译并成功运行。我可以从一个类中调用一个简单的int,但是当我想计算用户输入的两个输入整数时,我只会得到一个空格。这是我的计算课class calculations { public final int AGE = 53; public int numbers(int num1, int num2…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制