So lesen Sie den Inhalt von HttpResponseMessage als Text

8

Ich verwende die HttpResponseMessage-Klasse als Antwort von einem AJAX-Aufruf, der JSON-Daten von einem Dienst zurückgibt. Wenn ich die Ausführung pausiere, nachdem der AJAX-Aufruf vom Dienst zurückkommt, sehe ich, dass diese Klasse eine Content-Eigenschaft vom Typ System.Net.Http.StreamContent enthält.

Wenn ich im Browser nachschaue, sehe ich, dass der Netzwerkanruf erfolgreich ausgeführt wird und die JSON-Daten als Antwort angezeigt werden. Ich frage mich nur, warum ich den zurückgegebenen JSON-Text nicht in Visual Studio sehen kann? Ich suchte in diesem System.Net.Http.StreamContent-Objekt und sehe keine Daten.

%Vor%     
PythonIsGreat 30.04.2015, 18:22
quelle

3 Antworten

23

Die textuelle Darstellung der Antwort ist in der Content Eigenschaft der Klasse HttpResponseMessage . Insbesondere erhalten Sie die Antwort wie folgt:

response.Content.ReadAsStringAsync();

Wie alle modernen Async Methoden gibt ReadAsStringAsync eine Task zurück. Um das Ergebnis direkt zu erhalten, verwenden Sie die Eigenschaft Result der Aufgabe:

response.Content.ReadAsStringAsync().Result;

Beachten Sie, dass Result blockiert. Sie können auch await ReadAsStringAsync() .

    
Bart van Nierop 30.04.2015, 18:29
quelle
5

Sie können ReadAsStringAsync für Content verwenden.

%Vor%

Beachten Sie, dass Sie normalerweise await - nicht .Result verwenden sollten.

    
Timothy Shields 30.04.2015 18:37
quelle
0

Sie können die ReadAsStringAsync () -Methode

verwenden %Vor%

Wir müssen warten, da wir ReadAsStringAsync () verwenden, die die Aufgabe zurückgeben.

    
Niraj Trivedi 11.04.2018 03:58
quelle

Tags und Links