Tuesday 15 February 2011

c# 4.0 - WebAPI can't call Put method -


मेरे पास सर्वर पर निम्न कोड है:

  सार्वजनिक वर्ग UploadController: ApiController {सार्वजनिक शून्य रखो (स्ट्रिंग फ़ाइलनाम, स्ट्रिंग विवरण) {...} सार्वजनिक शून्य डाल () {...}   

और इसे ग्राहक से कॉल करने का प्रयास करें:

 < कोड> var क्लाइंटडासक्रार = नया एचटीटीपी क्लाइंट (); Var पोस्टडेटा = नई सूची & lt; KeyValuePair & lt; स्ट्रिंग, स्ट्रिंग & gt; & gt; (); PostData.Add (नई कुंजीव्यूपायर & lt; स्ट्रिंग, स्ट्रिंग & gt; ("फाइलनाम", "परीक्षा")); पोस्टडेटा.एड (नया चाबीवैलपेयर & lt; स्ट्रिंग, स्ट्रिंग & gt; ("विवरण", "100")); HttpContent contentDescr = नया फॉर्मयूआरएलएनकोडेडसंपादन (पोस्टडेटा); ClientDescr.PutAsync ("http: // स्थानीयहोस्ट: 8758 / एपीआई / अपलोड", सामग्रीडीएससीआर) .संपूर्ण ((पोस्टटैस्क) = & gt; {postTask.Result.EnsureSuccessStatusCode ();});   

लेकिन यह कोड दूसरे सेट विधि (बिना पैरामीटर) को कॉल करता है। पहली और सही तरीके से कॉल विधि को कैसे कॉल करें?

आपके पास यहां कई विकल्प हैं: < P> आप या तो क्वेरी स्ट्रिंग में पैरामीटर पारित करने के लिए चुन सकते हैं: केवल यूआरआई को बदलकर:

http: // localhost: 8758 / api / upload? Filename = test & description = 100

या आप अपने एपीआई को इस तरह से देखने के लिए अपना एपीआई बदलने के लिए वेब एपीआई को फॉर्म डेटा पार्स कर सकते हैं:

  सार्वजनिक शून्य रखो (फ़ॉर्मडाटा कलेक्शन फॉर्मडेटा) {String fileName = formData.Get ("fileName"); स्ट्रिंग विवरण = formData.Get ("description"); }   

आप एक ऐसा क्लास बनाने के लिए भी चुन सकते हैं जिसमें फ़ाइलनाम और एक विवरण की संपत्ति है और इसका उपयोग करें क्योंकि आपका पैरामीटर और वेब एपीआई आपके लिए सही तरीके से बाइंड करने में सक्षम हो।

No comments:

Post a Comment