サービスからJSONデータを返すAJAX呼び出しからの応答としてHttpResponseMessageクラスを使用しています。AJAX呼び出しが戻った後に実行を一時停止するとサービスから、このクラスにはSystem.Net.Http.StreamContent型のContentプロパティが含まれていることがわかります。
ブラウザで検査すると、ネットワーク呼び出しが正常に行われ、JSONデータが応答として表示されます。 Visual Studio内から返されたJSONテキストが表示されないのはなぜだろうか?このSystem.Net.Http.StreamContentオブジェクト全体を検索しましたが、データがありません。
public async Task<HttpResponseMessage> Send(HttpRequestMessage request) {
var response = await this.HttpClient.SendAsync(request);
return response;
}
応答のテキスト表現は、Content
クラスの HttpResponseMessage
プロパティに隠されています。具体的には、次のような応答を取得します。
response.Content.ReadAsStringAsync();
最新のAsyncメソッドと同様に、ReadAsStringAsync
はTask
を返します。結果を直接取得するには、タスクのResult
プロパティを使用します。
response.Content.ReadAsStringAsync().Result;
Result
はブロックしていることに注意してください。 await
ReadAsStringAsync()
を使用することもできます。
ReadAsStringAsync
でContent
を使用できます。
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
通常、.Result
ではなくawait
を使用する必要があることに注意してください。
ReadAsStringAsync()メソッドを使用できます
var result = await response.Content.ReadAsStringAsync();
タスクを返すReadAsStringAsync()を使用しているため、awaitを使用する必要があります。