Пересобранных асинхронных сделать запрос API не дожидаясь сведения.
Привет, ребята/девочки, у меня есть небольшая проблема. у меня есть метод, который выполняет запрос get. этот метод работает. поэтому я пересмотрел метод, чтобы некоторые части можно было использовать для других методов.
//Original Method public async Task<T> GetByIdAsync(T returnType, T1 controllerName, T2 Id) { var url = baseUrl + controllerName + "/" + Id; var result = returnType; using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); var response = await client.GetAsync(url); if (response.IsSuccessStatusCode) { var data = response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject(data.Result); } } } //refactored method public async Task<T> GetByIdAsync<T, T1, T2>(T returnType, T1 controllerName, T2 Id) { var url = baseUrl + controllerName + "/" + Id; var result = returnType; var client = GetClient(url); var response = await client.GetAsync(url); if (response.IsSuccessStatusCode) { var data = response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject<T>(data.Result); } return result; } public static HttpClient GetClient(string url) { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); return client; } }
После того, как я пересмотрел метод, он больше не ждет. что случилось? ..
Что я уже пробовал:
исходный код работает, я пытаюсь понять, почему переработанный код не работает