Итак, код, который вы опубликовали, немного отстает ... Мне не удалось его скомпилировать, поэтому я переписал его, чтобы следовать общему шаблону при использовании HttpClient
:
var url = "https://www.nseindia.com/api/allIndices?csv=true";
using (var msg = new HttpRequestMessage(HttpMethod.Get, new Uri(url)))
{
msg.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/csv"));
using (var resp = await _client.SendAsync(msg))
{
resp.EnsureSuccessStatusCode();
using (var s = await resp.Content.ReadAsStreamAsync())
using (var sr = new StreamReader(s))
using (var futureoptionsreader = new CsvReader(sr, CultureInfo.CurrentCulture))
{
futureoptionsreader.Configuration.RegisterClassMap<MappingNSEIndexes>();
var list = futureoptionsreader.GetRecords<RawNSEIndexes>();
var number = list.Count();
}
}
}
Имейте в виду, сервер не вернет никаких данных, если вы не добавите строку Headers.Accept
.
Одна из основных проблем - это строка:
var response = sendtask.Result.EnsureSuccessStatusCode();
var httpStream = await response.Content.ReadAsStreamAsync();
Это даже не compile - EnsureSuccessStatusCode
возвращает void
. Итак, я предполагаю, что вы скопировали и вставили код после того, как изменили его, пытаясь устранить неполадки.