2012-05-01 13 views
167

मैं HttpClient ऑब्जेक्ट (नए वेब एपीआई के हिस्से के रूप में) का उपयोग करके वेब पर कई उदाहरणों में देखता हूं कि HttpContent.ReadAsAsync<T> विधि होनी चाहिए। हालांकि, MSDN इस विधि का उल्लेख नहीं करता है, न ही इंटेलिसेन्स इसे ढूंढता है।HttpContent.ReadAsAsync कहां है?

यह कहां गया, और मैं इसके आसपास कैसे काम करूं?

उत्तर

269

ऐसा लगता है कि यह (System.Net.Http.Formatting में) एक विस्तार विधि है:

HttpContentExtensions Class

अद्यतन:

PM> स्थापित पैकेज Microsoft.AspNet .WebApi.Client

System.Net.Http.Formatting NuGet pa के अनुसार सीकेज पेज, System.Net.Http.Formatting पैकेज अब विरासत है और पैकेज में NuGet here पर उपलब्ध पैकेज में पाया जा सकता है।

+0

इस नवीनतम ग्राहक Nugets में पदावनत किया गया है? अब इसे नहीं मिला (उपयोग करने में सक्षम)। – georgiosd

+0

यह अच्छी तरह से हो सकता है। .NET4.5 ने एसिंक/कार्यों (प्रतीक्षा, इत्यादि) के संबंध में बहुत सी नई सामग्री को जोड़ा, इसलिए ये एक्सटेंशन अब आवश्यक नहीं हो सकते हैं। मुझे शायद यहां एक नज़र डालें, उदाहरण के लिए: http://msdn.microsoft.com/en-us/library/system.net.http.httpcontent.aspx –

+0

मैं 'ReadAsynync' के साथ एक ही व्यवहार प्राप्त कर सकता हूं और निर्दिष्ट कर सकता हूं एक JSON फॉर्मेटर लेकिन यह एक आसान शॉर्टकट था। – georgiosd

47

मैं एक ही समस्या है, तो मैं बस JSON स्ट्रिंग हो और मेरी कक्षा के लिए deserialize:

HttpResponseMessage response = await client.GetAsync("Products"); 
//get data as Json string 
string data = await response.Content.ReadAsStringAsync(); 
//use JavaScriptSerializer from System.Web.Script.Serialization 
JavaScriptSerializer JSserializer = new JavaScriptSerializer(); 
//deserialize to your class 
products = JSserializer.Deserialize<List<Product>>(data); 
+4

के लिए थे इस तथ्य के अलावा कि यह सवाल का जवाब नहीं देता है, यह क्यों मतदान किया गया? क्या यह 'ReadAsynyn'' के लिए उचित विकल्प नहीं है? – Jess

+3

यह निश्चित है! +1! – Mrchief

+4

शायद इसलिए कि आपने विस्तार विधि कहां से सवाल का जवाब नहीं दिया था। अपना खुद का लेखन एक खराब कामकाज है – BritishDeveloper

1

अपनी परियोजना में बस राइट क्लिक जाना प्रबंधित NuGet पैकेज Microsoft.AspNet.WebApi.Client के लिए खोज इसे स्थापित और आपके पास एक्सटेंशन विधि तक पहुंच होगी।

+2

क्या यह पहले से ही स्वीकृत उत्तर में कुछ भी जोड़ता है? –

+0

हाँ वे अभी भी शिकायत कर रहे थे, इसलिए .. –

+3

किसके बारे में शिकायत कर रहा है? –

2

आप पहले से ही Newtonsoft.Json उपयोग कर रहे हैं और Microsoft.AspNet.WebApi.Client स्थापित करने के लिए नहीं करना चाहती:

var myInstance = JsonConvert.DeserializeObject<MyClass>(
    await response.Content.ReadAsStringAsync()); 
संबंधित मुद्दे