2017-03-21 1 views
3

J'ai écrit un code suivant pour effectuer une requête XML en utilisant la bibliothèque HttpWebClient de .NET comme ceci:Demande XML Jouer avec HttpClient à 4,5 .NET +

public async Task<string> DoRequest() 
     { 

      using (var httpClient = new HttpClient()) 
      { 
       string requestXML = "My xml here..."; 
       var request = new HttpRequestMessage(HttpMethod.Post, "example.com"); 
       request.Content = new StringContent(requestXML, Encoding.UTF8, "text/xml"); 
       var response = await httpClient.SendAsync(request); 
       return await response.Content.ReadAsStringAsync(); 
      } 
     } 

Et dans la fonction principale de l'application de la console:

Klijent test= new Klijent(); 
var res = test.DoRequest(); 

Mais les res type de retour est toujours me montrer ceci:

Id = 1, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}" 

Comment puis-je une effectuer la demande avec cette bibliothèque? Qu'est-ce que je fais mal ici?

Répondre

2

Tout simplement attendre pour résultat

var res = test.DoRequest().Result; 

Vous attendez résultat immédiat, même si votre code est asynchrone.

+0

Ah c'est ça ... Ty tant :) :) – User987

+1

Ou utilisez 'res = await test.DoRequest();'. Vous avez seulement besoin de '.Result' dans les méthodes où vous ne pouvez pas utiliser' async', comme la méthode Main d'une application console –