2012-02-28 11 views
16

मैं एक HTTP वेब सेवा का उपयोग करना चाहते हैं, और मैं पहले से ही WP7 के लिए एक एप्लिकेशन विकसित किया है।WebClient वर्ग मौजूद नहीं है Windows 8 में

मैं WebClient वर्ग का उपयोग करें, लेकिन मैं खिड़कियों 8 ("त्रुटि: प्रकार या नाम स्थान नहीं पाया जा सकता है") के लिए इसका इस्तेमाल नहीं कर सकते हैं।

मैं और क्या कर सकते हैं?

तुम मुझे कोड का एक नमूना दे सकते हैं?

माइक्रोसॉफ्ट एक साइट मदद करने के लिए जब एक नाम स्थान मौजूद नहीं है है?

+7

"windows8" द्वारा, क्या आपको वास्तव में "WinRT" का अर्थ है? इसे नियमित रूप से .NET ढांचे को लक्षित करने वाले विंडोज 8 पर बिल्कुल ठीक काम करना चाहिए। यदि आप WinRT को लक्षित कर रहे हैं, तो सुनिश्चित करें: आपको WinRT ऑफ़र का उपयोग करने की आवश्यकता है। –

+2

1. यह नामस्थान नहीं है, यह एक वर्ग है। 2. हां, यह WinRT से अनुपस्थित है क्योंकि यह सिंक्रोनस कॉल करने के खराब अभ्यास को प्रोत्साहित करता है। इसके बजाय HttpWebRequest क्लास का उपयोग करें। – wizzard0

+4

"हां, यह WinRT से अनुपस्थित है क्योंकि यह सिंक्रोनस कॉल करने के खराब अभ्यास को प्रोत्साहित करता है।" यह निश्चित रूप से कारण नहीं है कि WebClient WinRT में मौजूद नहीं है क्योंकि WebClient में Async संस्करणों में से अधिकांश विधियां हैं। WinRT से गायब होने का कारण अन्य कारणों से संभव है। –

उत्तर

26

विकल्प 1: HttpClient अगर आप नियतात्मक प्रगति अधिसूचना की जरूरत नहीं है यह है कि क्या आप का उपयोग करना चाहते हैं। उदाहरण।

public async Task<string> MakeWebRequest() 
{ 
     HttpClient http = new System.Net.Http.HttpClient(); 
     HttpResponseMessage response = await http.GetAsync("http://www.example.com"); 
     return await response.Content.ReadAsStringAsync(); 
} 

विकल्प 2: जब आप नोटिफिकेशन प्रगति की जरूरत है आप DownloadOperation या BackgroundDownloader उपयोग कर सकते हैं। एमएसडीएन पर यह sample एक अच्छी शुरुआत है।

विकल्प 3: चूंकि आपने वेब सेवा का उल्लेख किया है और यदि यह एक्सएमएल लौटा रहा है तो आप XmlDocument.LoadFromUriAsync का उपयोग कर सकते हैं जो आपको एक XML दस्तावेज़ वापस कर देगा। उदाहरण

public async void DownloadXMLDocument() 
{ 
     Uri uri = new Uri("http://example.com/sample.xml"); 
     XmlDocument xmlDocument = await XmlDocument.LoadFromUriAsync(uri); 
     //do something with the xmlDocument. 
} 

आप मेट्रो नेट ढांचे के लिए विकसित कर रहे हैं जब डेस्कटॉप संस्करण की तुलना में सीमित कर दिया जाएगा। यदि आपको नामस्थान दिखाई नहीं देता है तो यह आमतौर पर इस तथ्य के कारण होता है। एमएसडीएन पर यह link नामस्थानों की सूची है, मेट्रो के लिए उपलब्ध कक्षाएं।

संबंधित मुद्दे