Я хочу вызвать Web API через C # Task, но я не могу получить возвращенный результат, хотя он переходит на URL, который я указал, чтобы получить значения.
Реализовать ли яневерный метод асинхронизации и ожидания?
Ниже приведен мой код:
Веб-API с префиксом маршрута:
[RoutePrefix("api/values")]
Метод, описанный ниже в веб-API:
[Route("Developer")]
[HttpGet]
public Task<List<string>> Developer()
{
var developer = new List<string> { "Developer", "Developer" };
return Task.FromResult(developer);
}
Контроллер
private async Task<List<string>> Developer()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:52717/");
var response = await client.GetAsync("api/values/Developer");
if (response.IsSuccessStatusCode)
return new List<string>();
throw new Exception("Unable to get the values");
}
}
public ActionResult Index()
{
Task.WaitAll(Developer());
return View();
}
Каждый раз, когда я запускаю браузер, онидет в Index () и переходит к Developer (), однако он застревает и загружается до тех пор, пока не будет вызван var response = await client.GetAsync("api/values/Developer")
, и не пройдёт весь путь до return Task.FromResult(developer);
, и он не остановится и не загрузитсяполностью.
Кто-нибудь знает, как заставить веб-API возвращаться к вызывающей стороне?
Любая помощь будет высоко ценится.
Спасибо