Bonjour,

Je m'interroge sur ce qui est le plus préférable d'utiliser pour une récupération d'un flux JSON lors de la consommation d'une WebAPI Rest

1/ La méthode Asynchrone du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    static HttpClient client = new HttpClient();

    static async Task<string> GetJson(string WebApiURL)
    {
        var request = new HttpRequestMessage(HttpMethod.Get, WebApiURL);

        var response = await client.SendAsync(request);
        try
        {
            response.EnsureSuccessStatusCode();
        }
        catch
        {
            return "";
        }
        string Json = await response.Content.ReadAsStringAsync();

        return Json;
    }

    static async Task<HorsesProgram.Programme> GetHorsesProgram(string Journey)
    {
        string Content = await GetJson($"{Root.AbsoluteUri}7/programme/{Journey}");
        HorsesProgram.Rootobject RootObject  = JsonConvert.DeserializeObject<HorsesProgram.Rootobject>(Content)!;
            
        return RootObject.programme!;
    }

    private static void Main(string[] args)
    {
        string Journey = "14112024";

        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        HorsesProgram.Programme HorsesPrograms  = GetHorsesProgram(Journey).Result; 
     }
Ou bien

2/ La méthode synchrone
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        private static string CallApi(string UrlApi)
        {

            var client = new RestClient(UrlApi);
            var request = new RestRequest();

            request.AddHeader("Accept", "application/json");
            request.AddHeader("Content-Type", "application/json;charset=UTF-8");

            var response = client.Get(request);


            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return response.Content!;
            }
            return "";
        }

        private void getPrograms()
        {
            string URL = $"{Root.AbsoluteUri}/7/programme/{DTP_Day.Value.ToString("ddMMyyyy")}";

            string rawResponse = CallApi(URL);
            HorsesProgram = null;
            if (rawResponse != string.Empty) HorsesProgram = JsonConvert.DeserializeObject<HorsesProgram.Rootobject>(rawResponse)!;           
        }
Vos informations et remarques sont les bien venues

Merci à vous.