2012-08-09 13 views
9

मैंने इस सप्ताह दो एएसपी.NET वेब एपीआई अनुप्रयोगों को लिखा है जिसमें दोनों में एक सरल नियंत्रक होता है; मैंने उन्हें काम करने के लिए प्रत्येक को tweaked किया है, अपवाद शामिल हैं, और इतने पर, लेकिन जहां तक ​​मैं देख सकता हूं वे लगभग उसी कॉन्फ़िगर किए गए हैं।अगर मैं एएसपी.नेट वेब एपीआई में जेएसओएन या एक्सएमएल चाहता हूं तो मैं कैसे निर्दिष्ट करूं?

इनमें से एक जेएसओएन और अन्य रिटर्न एक्सएमएल देता है। मैं उन्हें दोनों जेएसओएन वापस करना चाहता हूँ!

मैंने कुछ विन्यास की तलाश की है जो इस व्यवहार को नियंत्रित कर सकती है लेकिन मुझे कोई खुशी नहीं है। एएसपी.नेट वेब एपीआई द्वारा उपयोग किए जाने वाले क्रमबद्धता प्रकार को नियंत्रित करने वाली सेटिंग कहां है?

उत्तर

10

यह क्या बुला ग्राहक (जैसे ब्राउज़र या अपने नेट ग्राहक) स्वीकार करें शीर्षक में गुजरता द्वारा परिभाषित किया गया है:

स्वीकार करें: आवेदन/json, application/xml, पाठ/json, पाठ/एक्सएमएल

JSON के लिए एक प्राथमिकता होगा (यदि संभव हो)

तो अपने ग्राहक है कि XML रिटर्न ऊपर या बस

01 होने की Accept हेडर सेट करना होगा

स्वीकार करें: आवेदन/json

चाल

2

केवल एक फ़ॉर्मेटर के उत्पादन को सीमित करने के लिए, यहां दिए गए निर्देशों की कोशिश करना चाहिए: एक संबंधित नोट पर

http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization#removing_the_json_or_xml_formatter

, निम्न लिंक यह बताता है कि एएसपी.नेट वेब एपीआई कैसे तय करता है कि आउटपुट प्रारूप का उपयोग करने के लिए HTTP अनुरोध पर निर्भर करता है, यानी यह एक्सएमएल पर जेएसओएन कैसे चुनता है:

http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation

यह आप अभी भी दोनों स्वरूपों का समर्थन करना चाहते हैं, लेकिन हमेशा JSON प्राप्त करता है वापस अपने खुद के ग्राहक कोड सुनिश्चित करने की आवश्यकता है, तो उपयोगी हो सकता है।

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

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