Ich verwende die HttpResponseMessage-Klasse als Antwort von einem AJAX - Aufruf, der JSON-Daten von einem Dienst zurückgibt. Wenn ich die Ausführung anhalten, nachdem der AJAX - Aufruf vom Dienst zurückkommt, sehe ich, dass diese Klasse eine Content-Eigenschaft enthält, die vom Typ System.Net.Http.StreamContent ist.
Wenn ich im Browser nachschaue, sehe ich, dass der Netzwerkaufruf erfolgreich ausgeführt wurde, und die JSON-Daten als Antwort. Ich frage mich nur, warum ich den zurückgegebenen JSON-Text in Visual Studio nicht sehen kann. Ich habe in diesem System.Net.Http.StreamContent-Objekt gesucht und keine Daten angezeigt.
public async Task<HttpResponseMessage> Send(HttpRequestMessage request) {
var response = await this.HttpClient.SendAsync(request);
return response;
}
Die Textdarstellung der Antwort ist in der Eigenschaft Content
der Klasse HttpResponseMessage
verborgen. Im Einzelnen erhalten Sie die folgende Antwort:
response.Content.ReadAsStringAsync();
Wie alle modernen asynchronen Methoden gibt ReadAsStringAsync
ein Task
zurück. Um das Ergebnis direkt abzurufen, verwenden Sie die Eigenschaft Result
der Aufgabe:
response.Content.ReadAsStringAsync().Result;
Beachten Sie, dass Result
blockiert. Sie können auch await
ReadAsStringAsync()
.
Sie können ReadAsStringAsync
für die Content
verwenden.
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
Beachten Sie, dass Sie normalerweise await
- nicht .Result
verwenden sollten.
Sie können die ReadAsStringAsync () -Methode verwenden
var result = await response.Content.ReadAsStringAsync();
Wir müssen wait verwenden, da wir ReadAsStringAsync () verwenden, die die Task zurückgeben.