我有一个函数可以从 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/