Comment retourner une chaîne de async

Ma méthode est d'appeler un service web et de travail asynchronusly.

Lors de l'obtention de la réponse, tout fonctionne bien et j'ai obtenu ma réponse.

Le problème commence quand j'ai besoin de retourner cette réponse.

voici le code de ma méthode:

 public async Task<string> sendWithHttpClient(string requestUrl, string json)
        {
            try
            {
                Uri requestUri = new Uri(requestUrl);
                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Clear();
                    ...//adding things to header and creating requestcontent
                    var response = await client.PostAsync(requestUri, requestContent);

                    if (response.IsSuccessStatusCode)
                    {

                        Debug.WriteLine("Success");
                        HttpContent stream = response.Content;
                        //Task<string> data = stream.ReadAsStringAsync();    
                        var data = await stream.ReadAsStringAsync();
                        Debug.WriteLine("data len: " + data.Length);
                        Debug.WriteLine("data: " + data);
                        return data;                       
                    }
                    else
                    {
                        Debug.WriteLine("Unsuccessful!");
                        Debug.WriteLine("response.StatusCode: " + response.StatusCode);
                        Debug.WriteLine("response.ReasonPhrase: " + response.ReasonPhrase);
                        HttpContent stream = response.Content;    
                        var data = await stream.ReadAsStringAsync();
                        return data;
                     }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("ex: " + ex.Message);
                return null;
            }

et je l'appelle de cette façon:

      Task <string> result =  wsUtils.sendWithHttpClient(fullReq, "");           
      Debug.WriteLine("result:: " + result); 

mais lors de l'impression du résultat que je suis de voir quelque chose comme ceci: System.Threading.Tasks.Task

comment puis-je obtenir la chaîne de résultat comme je l'ai fait avec données à l'intérieur de ma méthode.

vous devez accéder à la Result propriété de votre Task pour obtenir le résultat souhaité .

OriginalL'auteur eeadev | 2015-07-21