1 回答
TA贡献1836条经验 获得超3个赞
如果您试图避免创建中间体MemoryStream- 您可以使用GetStreamAsyncon 方法HttpClient,它应该返回原始数据,NetworkStream因为您直接传递给 CsvHelper,而不是ReadAsStreamAsync,这将默认MemoryStream在返回之前将完整响应读入 a 。
using (var reader = new StreamReader(await httpClient.GetStreamAsync(queryString)))
{
var csvr = new CsvReader(reader);
var responseValue = csvr.GetRecords<TrainingDataSetData>().ToList();
result.Readings.AddRange(responseValue);
}
如果您仍然需要访问 ,则HttpResponseMessage可以通过使用 来达到相同的效果HttpCompletionOption.ResponseHeadersRead,它不会在返回之前缓冲响应。
var response = await httpClient.GetAsync(queryString, HttpCompletionOption.ResponseHeadersRead);
至于这是否实际上更有效 - 这需要在您的特定环境中进行基准测试来决定,因为它可能取决于响应的大小、网络速度等。
- 1 回答
- 0 关注
- 221 浏览
添加回答
举报