我有一个从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题解计算机为什么是基于二进制的?可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制