Bonjour,
Dans un projet .NET MVC Framework 4.7.2 : j'essaye de r�cup�rer une liste de users depuis une web API :
Voici le code de mon contr�leur :
1 2 3 4 5 6 7 8 9
| public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
var result = apiService.GetAllUsers();
var result2 = result.Result;
var result3 = result2.ToList();
return Json(
ConvertHelper.ToCompteSSOGridVM(result3).ToDataSourceResult(request)
);
} |
Et le code de ma classe qui fait appel � l'API :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public async Task<IEnumerable<CompteSSOGVM>> GetAllUsers()
{
List <CompteSSOGVM> users = new List <CompteSSOGVM>();
try
{
var httpClient = GetHttpClient();
var httpResponse = await httpClient.GetAsync($"/api/Users?pageSize=100");
var result = httpResponse.Content.ReadAsStringAsync().Result;
var responseContent = JsonConvert.DeserializeObject<CompteSSOGridViewModel>(result);
if (httpResponse.IsSuccessStatusCode)
{
users = responseContent.Users;
}
}
catch (Exception ex)
{
...
}
return users;
} |
L'ex�cution de la ligne :
var httpResponse = await httpClient.GetAsync($"/api/Users?pageSize=100");
fait imm�diatement sortir de la fonction, et on se retrouve sur la ligne
var result2 = result.Result;
avec la variable result dans cet �tat : Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"
Mais pas d'exception... la page est bloqu�e avec un tableau vide dans le navigateur.
Avec Fiddler, je constate que le code retour de l'API est HTTP 200 OK, j'ai bien les r�sultats attendus.
J'ai l'impression que je ne g�re pas comme il faut l'asynchronisme, j'ai essay� de rentre la m�thode Read asynchrone mais c'est pire, j'ai une exception syst�matique en faisant cela.
Help please ?..
Merci d'avance !
Partager