我有一个从Web服务获取大量JSON的函数。这个数据有时可能很大,千兆字节。我的电话看起来像这样。
try
{
using (var httpClient = NewHttpClient())
{
var response = httpClient.GetAsync(endpoint).Result;
return response;
}
}
catch(Exception ex)
{
//Do Stuff
}
当数据很大时,会抛出内存不足异常。我相信这是因为响应消息实际上比HttpResponseMessage允许它更大。有没有办法在一段时间内只得到一些消息?我确信它以前已经完成,但我无法找到谷歌和/或斜杠的任何东西。提前感谢您的建议。
答案 0 :(得分:6)
只需获取流并将其写入文件,以便稍后处理,
using (var httpClient = new HttpClient())
{
var stream = await httpClient.GetStreamAsync(url);
stream.CopyToAsync(fileStream)
}