2015-04-30 12 views
7

Bir hizmetten JSON verilerini döndüren bir AJAX çağrısının yanıtı olarak HttpResponseMessage sınıfını kullanıyorum. AJAX çağrısı hizmetten döndükten sonra yürütmeyi duraklattığımda, bu sınıfın System.Net.Http.StreamContent türünde bir Content özelliği içerdiğini görüyorum.HttpResponseMessage içeriği metin olarak nasıl okunabilir

Tarayıcıda incelediğimde ağ görüşmesinin başarıyla yapıldığını ve yanıt olarak JSON verilerini görüyorum. Geri dönen JSON metnini neden Visual Studio'dan göremediğimi merak ediyorum. Bu System.Net.Http.StreamContent nesnesi boyunca arama yaptım ve veri göremedim.

public async Task<HttpResponseMessage> Send(HttpRequestMessage request) { 
    var response = await this.HttpClient.SendAsync(request); 
    return response; 
} 
+1

Belki de bize kodunuzu göstermek ister misiniz? –

+0

Bunun için üzgünüz. – PythonIsGreat

+1

Ve tam olarak ne yapmak istiyorsun? 'Response' değişkenini kontrol edin? –

cevap

23

yanıtın metinsel gösterimi HttpResponseMessage sınıfının Content özelliğinde gizlidir. Özellikle, böyle yanıt almak: Tüm modern Async yöntemlerle gibi

response.Content.ReadAsStringAsync();

, ReadAsStringAsync bir Task döndürür. Result engelliyor

response.Content.ReadAsStringAsync().Result;

Not: Doğrudan bir sonuç elde etmek için, görevin Result özelliğini kullanın. Ayrıca awaitReadAsStringAsync().

+3

Bu, bir Görev 'döndürecektir. Gerçek dizi sonucunu görmek için “beklemeniz” gerekecek. –

5

Content'da ReadAsStringAsync'u kullanabilirsiniz. Genellikle await kullanarak olmalıdır

var response = await client.SendAsync(request); 
var content = await response.Content.ReadAsStringAsync(); 

Not - değil .Result.

İlgili konular