वास्तव में कुछ के साथ संघर्ष कर रहा हूं, मुझे आशा है कि यहां लोग मदद कर सकते हैं। मैं वेब एपीआई 2 में एक रीस्टफुल एपीआई लिख रहा हूं। जब भी मैं इस सेवा के लिए अनुरोध भेजता हूं, प्रतिक्रिया के Content-Type
के साथ लगातार भेजी जा रही है। जाहिर है यह कोई अच्छा नहीं है, मेरी प्रतिक्रिया Content-Type
application/json
की आवश्यकता है। मैंने Google से कुछ सुझावों की कोशिश की है लेकिन मुझे नहीं लगता कि मैं पूरी तस्वीर को समझ रहा हूं।वेब एपीआई 2 लौटने वाले पाठ/सादे प्रतिक्रिया
क्या मेरी वेब सेवा application/json
सामग्री के साथ प्रतिक्रिया देने के लिए मुझे कुछ खास करने की ज़रूरत है? ध्यान दें कि मैं इसे पूरे ऐप में वैश्विक स्तर पर काम करना चाहता हूं, इसलिए मैं किसी दिए गए प्रतिक्रिया को संशोधित करने और इसकी सामग्री प्रकार सेट करने के तरीके के बाद नहीं हूं - मैं चाहता हूं कि यह संपूर्ण वेब सेवा के लिए एक डिफ़ॉल्ट व्यवहार हो: यदि कोई अनुरोध शामिल है Accept
application/json
के लिए हेडर मैं चाहता हूं कि मेरी वेब सेवा text/plain
के बजाय Content-Type
लौटा दे। स्पष्ट करने के लिए
संपादित करें:
मेरा जवाब एक वस्तु "responseData" कि JSON में श्रृंखलाबद्ध किया जाना चाहिए और शरीर में शामिल कहा जाता है। मैं वर्तमान में इस तरह मेरी प्रतिक्रिया एक साथ डाल रहा हूं:
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, responseData);
return response;
responseData
एक POCO है। यह JSON के रूप में सही ढंग से क्रमबद्ध किया गया है और प्रतिक्रिया में लौटाया गया है - केवल अनुपलब्ध भाग सामग्री-प्रकार है जो गलत रूप से "टेक्स्ट/सादा" पर सेट है। मैं इसे लिखने वाली प्रत्येक प्रतिक्रिया पर मैन्युअल रूप से इसे बदल सकता हूं, लेकिन मैं इसे वैश्विक स्तर पर कॉन्फ़िगर करना चाहता हूं।
क्या प्रश्न में एपीआई जेएसओएन सामग्री के साथ एक 'स्ट्रिंग' वापस लौटाती है जिसे आपने स्वयं बनाया है? – Corey
यह जांचें http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation, http: //msdn.microsoft.com/en-us/magazine/dn574797.aspx , http: //blogs.msdn.com/b/henrikn/archive/2012/04/22/asp-net-web-api-content-negotiation-and-accept-charset.aspx, – malkam
@ वर्तमान में प्रतिक्रिया वर्तमान में है इस फैशन में बनाया गया: 'HttpResponseMessage प्रतिक्रिया = Request.CreateResponse (HttpStatusCode.OK, प्रतिक्रिया डेटा); और फिर मैं अपनी कार्रवाई में' प्रतिक्रिया 'वापस कर देता हूं। प्रतिक्रिया डेटा की सामग्री को JSON में अच्छी तरह से क्रमबद्ध किया जा रहा है, लेकिन वास्तविक सामग्री-प्रकार शीर्षलेख अभी भी टेक्स्ट/सादा पर सेट है :( –