2016-08-31 1 views
0

Wie kann ich einen StringContent von async zurückgeben? Muss ich es trotzdem als Aufgabe zurückgeben? Unten ist der Beispielcode, den ich verwende:Gibt einen StringContent von async zurück

public async Task<HttpResponseMessage> GetOrder(string url) 
{ 
    xml = "<result><success> True </success><message></result>"; 

    responseMessage = await httpContent; 
    return new HttpResponseMessage() 
    { 
     Content = new StringContent(xml, Encoding.UTF8, "application/xml") 
    };  
} 
+0

Gibt es ein Problem mit dem Code, den Sie gepostet haben? –

+0

Ich erhalte eine Fehlermeldung: "Warten Sie nicht auf den String-Inhalt" – Yoda

+2

Bitte veröffentlichen Sie ein minimales Beispiel, das das Problem reproduziert. –

Antwort

1

Ist das, was Sie versuchen zu tun?

public async Task<HttpResponseMessage> GetOrder(string url) 
    { 
     string xml = "<result><success> True </success><message></result>"; 

     return await Task<HttpResponseMessage>.Factory.StartNew(() => new HttpResponseMessage() 
                { 
                 Content = new StringContent(xml, Encoding.UTF8, "application/xml") 
                }); 

    } 

Wenn ja, ist Ihre Rückgabe xml auch ungültig. Dazu ein Zitat eines der vielen Online-xml-Validatoren „Der Elementtyp‚message (Nachricht)‘muss durch das passende End-Tag beendet werden“

+0

danke. das hat funktioniert – Yoda

+1

@Yoda keine Sorgen froh zu helfen, bitte schließen Sie die Frage, indem Sie eine der Antworten als die angenommene Antwort markieren :) –

1

Wenn Sie nicht tatsächlich async/await verwenden, dann würde das Verfahren wie folgt aussehen.

public Task<HttpResponseMessage> GetOrder(string url) { 
    xml = "<result><success> True </success><message></result>"; 

    var responseMessage = new HttpResponseMessage() { 
     Content = new StringContent(xml, Encoding.UTF8, "application/xml") 
    }; 

    return Task.FromResult(responseMessage); 
} 
Verwandte Themen