2012-09-11 23 views
20

मेरे पास एक कंसोल ऐप से एक सरल आराम सेवा कहा जा रहा है, इसलिए मैं वेब क्लाइंट का उपयोग कर रहा हूं। मैं सोच रहा हूं कि हटाए जाने के लिए यह कॉल सही है या नहीं।वेब क्लाइंट आराम से हटाएं

यूआरएल तरह लग रहा है स्थानीय होस्ट/RestService1/व्यक्ति/1

using (var client = new WebClient()) 
{ 
    client.UploadString(url, "DELETE", ""); 
} 

मैं जैसे कि UploadString एक डेटा पैरामीटर के बिना एक अधिभार नहीं है नहीं है। खाली पैरामीटर का गुजरना मेरे साथ अच्छी तरह से नहीं बैठ रहा है। क्या "DELETE" के लिए उपयोग करने के लिए कोई बेहतर तरीका है?

मैं WebRequest का उपयोग कर सकता हूं लेकिन मैं इसे लगातार रखने के लिए वेब क्लाइंट का उपयोग करना चाहता हूं।

यहाँ WebRequest ब्लॉक

var request = WebRequest.Create(url); 
request.Method = "DELETE"; 
var response = (HttpWebResponse)request.GetResponse(); 

दोनों ब्लॉकों ठीक काम करते हैं लेकिन क्या सबसे अच्छा है? या कोई बेहतर तरीका है?

+0

यह भी देखें: http://stackoverflow.com/questions/2539394/rest-http-delete-and-parameters –

+0

यह भी देखें: http: // stackoverflow। कॉम/प्रश्न/512279/restful-delete-strategy –

+0

उन संदर्भों में DELETE और RESTful के संबंध के अलावा, मुझे नहीं लगता कि 'वेब क्लाइंट' वास्तव में आपको DELETE का अर्थशास्त्र देता है। 'वेबक्लिएंट' कवर के तहत 'WebRequest' ('HttpWebRequest') का उपयोग करता है, इसलिए मुझे लगता है कि' HttpWebRequest' का उपयोग करके) सीधे अधिक पठनीय है। –

उत्तर

3

वेब क्लाइंट क्लास वास्तव में आराम से एपीआई खपत के लिए अच्छी तरह से उधार नहीं देता है, मैंने अतीत में RestSharp जैसे तृतीय पक्ष पुस्तकालयों का उपयोग किया है जो इस प्रकार के वेब अनुरोध की ओर अधिक तैयार हैं। मुझे पूरा यकीन है कि RestSharp केवल कवर के तहत HttpWebRequest का उपयोग करता है, लेकिन यह बहुत से अर्थशास्त्र प्रदान करता है जो आराम संसाधनों का उपभोग और पुन: उपयोग करते हैं।

+0

मैं न्यूटॉन्सॉफ्ट जेसन के साथ वेब क्लाइंट का उपयोग कर रहा हूं और इसका उपयोग करना बहुत आसान है। मैं RestSharp में देखता हूँ। धन्यवाद –

3

जाओ मिल Microsoft.Net.Http क्लाइंट लाइब्रेरी http://nuget.org/packages/Microsoft.Net.Http

HttpClient एक API के साथ काम करने के लिए उपयोग करने के लिए एक बेहतर ग्राहक है।

+0

यह पैकेज विजुअल स्टूडियो 2010 में समर्थित नहीं है, और केवल इस पैकेज का उपयोग करने वाली लाइब्रेरी का उपभोग करते समय Windows Store ऐप्स के लिए .NET Framework 4.5 या .NET को लक्षित करने वाली परियोजनाओं के लिए आवश्यक है। – juFo

+0

@juFo यह VS2010 और .NET 4.0 में समर्थित है। मुझे यकीन नहीं है कि आप अन्यथा क्यों सोचेंगे। –

+0

मैंने आपके द्वारा प्रदान किए गए लिंक को अभी उद्धृत किया है: http://nuget.org/packages/Microsoft.Net.Http – juFo

10

मेरे लिए निम्नलिखित काम करता है:

client.UploadValues(url, "DELETE", new NameValueCollection()); 
+0

और यदि आपको अतिरिक्त पैरामीटर (उदा। Api_key) प्रदान करने की आवश्यकता है, तो आप उन्हें यूआरएल में क्वेरी स्ट्रिंग के माध्यम से प्रदान कर सकते हैं। – MattGerg