2012-09-28 18 views
8

के साथ सी # वेब एपीआई का उपयोग करना मैं वेब एपीआई में नया हूं और मुझे क्लाइंट के लिए सर्वर बनाना है। मेरे पास क्लाइंट पर कोई नियंत्रण नहीं है - कोई चीज़ नहीं बदल सकती है।वैकल्पिक सामग्री-प्रकार

ग्राहक पोस्ट बॉडी में एक HTML encapsulated जेसन अनुरोध भेजता है। हालांकि, सामग्री-प्रकार भिन्न हो सकता है। मेरे एपीकंट्रोलर को विभिन्न सामग्री-प्रकारों को संसाधित करने की अनुमति देने के लिए मुझे क्या करने की आवश्यकता है?

उत्तर

8

हुड के तहत, वेब एपीआई सामग्री बातचीत तंत्र को HTTP अनुरोध में शीर्षलेख Content-Type पर आधारित सही फ़ॉर्मेटर को स्वचालित रूप से चुनने के लिए समर्थन करता है।

डिफ़ॉल्ट सामग्री बातचीत द्वारा तीन प्रारूपकों का समर्थन करता है: json, xml और form-urlencoded data। यदि कोई फॉर्मेटर नहीं मिला है, तो क्लाइंट को HTTP त्रुटि 406 (स्वीकार्य नहीं) प्राप्त होगी।

अधिक देखें:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation

आप वेब एपीआई समर्थन एक और Content-Type अनुमति देने के लिए की जरूरत है, तो आप अपने स्वयं के कस्टम फ़ॉर्मेटर लिख सकते हैं:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/media-formatters

+1

धन्यवाद। सार्वजनिक HttpResponseMessage पोस्ट (HttpRequestMessage r) { } यह मैं कच्चे एक्सएमएल आ रहा है, जिसमें मैं तो पार्स सकता तक पहुँच प्राप्त करने की अनुमति दी: मैं इस का उपयोग कर समाप्त हो गया। मुझे यकीन है कि यह "सही" तरीका नहीं है - लेकिन यह मेरे लिए काम करता है – user789235

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