Я использую HttpClient для запроса на api. Этот код находится в проекте библиотеки классов, совместно используемом двумя дополнительными проектами, Консоль и проект Asp.Net Mvc. Когда я делаю запрос от проекта консольного он прекрасно работает, но в нем блоках жереха проекта в строкеЗапрос HttpClient не работает в asp .net Project
using(Stream responseStream = await response.Content.ReadAsStreamAsync()
это мой код запроса
private async Task<dynamic> ReadJson(string url)
{
HttpResponseMessage response = await httpClient.GetAsync(url);
if (response.StatusCode == System.Net.HttpStatusCode.NoContent)
throw new RateLimitException();
if (response.StatusCode == System.Net.HttpStatusCode.Forbidden)
throw new AccessDeniedException();
if (response.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception("Error: " + response.StatusCode);
using (Stream responseStream = await response.Content.ReadAsStreamAsync())
using (StreamReader sr = new StreamReader(responseStream, System.Text.Encoding.UTF8))
{
string json = sr.ReadToEnd();
return JObject.Parse(json);
}
}
Я делаю тот же призыв к метод из Консоли и проекта Asp.Net. От консоли работает, но проект asp .net блокируется в строке при чтении содержимого ответа
Попробуйте вызвать методы асинхронных синхронно, как это: 'httpClient.Get (URL) и' response.Content.ReadAsStream() 'и скажите мне, если до сих пор блоков. – Alisson
Вам нужно сделать действие в MVC-контроллере 'async', а также –
@Alisson httpClient не имеет метода Get() и Content, не имеет ReadAsStream(). Im Я пропустил некоторое пространство имен? –