यदि डब्ल्यूसीएफ आरईएसटी कॉल में कुछ गलत हो जाता है, जैसे अनुरोधित संसाधन नहीं मिला है, तो मैं अपने ऑपरेशन कंट्रैक्ट विधि में HTTP प्रतिक्रिया कोड (उदाहरण के लिए HTTP 404 जैसे कुछ को सेट कर सकता हूं) के साथ कैसे खेल सकता हूं?मैं डब्लूसीएफ आरईएसटी विधि से कस्टम HTTP स्टेटस कोड कैसे वापस कर सकता हूं?
उत्तर
एक WebOperationContext
है कि आप उपयोग कर सकते हैं नहीं है और यह प्रकार OutgoingWebResponseContext
के OutgoingResponse
संपत्ति जो एक StatusCode
संपत्ति सेट किया जा सकता है कि नहीं है।
WebOperationContext ctx = WebOperationContext.Current;
ctx.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.OK;
क्या यह डब्ल्यूसीएफ डाटा सर्विसेज - सर्विस ऑपरेशंस के अंदर काम करता है? मुझे भाग्य नहीं मिला है, ऐसा लगता है कि स्टेटसकोड I सेट किसी और चीज से फंस जाता है। तो सभी HTTP पोस्ट अनुरोधों पर, मुझे 204 वापस मिलते हैं चाहे मैं इसे 201 पर सेट करता हूं, आदि। – RyBolt
मेरे मामले में काम नहीं करता है, स्थिति अधिलेखित हो जाती है। हालांकि, 'WebFaultException' को फेंकना, काम करता प्रतीत होता है। –
404 के लिए वहाँ एक WebOperationContext.Current.OutgoingResponseSetStatusAsNotFound (स्ट्रिंग संदेश) कि 404 के लिए स्थिति कोड और एक कॉल के साथ एक स्थिति वर्णन सेट हो जाएगा कहा जाता है पर विधि में बनाया गया है।
नोट भी है, SetStatusAsCreated (उरी स्थान) जो स्टेटस कोड 201 पर और एक कॉल के साथ स्थान शीर्षलेख सेट करेगा।
क्या यह स्वीकृत उत्तर में प्रदर्शित विधि से अधिक है? – crush
आप एक कारण शरीर वापस जाने के लिए की जरूरत है तो उदाहरण के लिए WebFaultException
पर एक नज़र
throw new WebFaultException<string>("Bar wasn't Foo'd", HttpStatusCode.BadRequest);
मुझे स्वीकार्य एक से बेहतर यह पसंद है क्योंकि हम स्थिर वेबऑपरेशन कॉन्टेक्स्ट का उपयोग नहीं कर रहे हैं। वर्तमान –
ध्यान रखें कि यह केवल फ़ेमवर्क 4 के बाद से मान्य है http://msdn.microsoft.com/en-us/library/dd989924.aspx – sebagomez
हम्म, .NET 4.5.1 में यह मेरे लिए स्टेटस कोड सेट नहीं कर रहा है, मुझे अभी भी 200 मिल रहा है। मैं जेसनपी का उपयोग कर रहा हूं, यह मेरी कॉलबैक (जावास्क्रिप्ट में) को कॉल कर रहा है और मेरा संदेश और मेरा स्टेटस कोड पास कर रहा है पूर्णांक। – Shavais
आप शीर्ष लेख में स्थिति विवरण देखने के लिए चाहते हैं, तो बाकी विधि वापस जाने के लिए यह सुनिश्चित करना चाहिये है कैच() सेक्शन नीचे से नीचे:
catch (ArgumentException ex)
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.InternalServerError;
WebOperationContext.Current.OutgoingResponse.StatusDescription = ex.Message;
return null;
}
यह मेरे लिए काम नहीं करता है, मुझे अभी भी 200 मिलते हैं। मैं crossHomainScriptAccessEnabled = "true" के साथ WebHttp बाइंडिंग का उपयोग कर रहा हूं और वेबएचटीपी का अंत बिंदु व्यवहार लपेटने की डिफ़ॉल्ट बॉडी स्टाइल और जेसन के डिफ़ॉल्ट आउटगोइंग प्रतिक्रिया प्रारूप के साथ कर रहा हूं। लेकिन इससे कोई फर्क नहीं पड़ता, क्या यह चाहिए? – Shavais
यह डब्ल्यूसीएफ डेटा सेवाओं के लिए मेरे लिए काम नहीं करता है। इसके बजाय, आप डेटा सेवाओं के मामले में DataServiceException का उपयोग कर सकते हैं। निम्नलिखित पोस्ट उपयोगी पाया। http://social.msdn.microsoft.com/Forums/en/adodotnetdataservices/thread/f0cbab98-fcd7-4248-af81-5f74b019d8de
यह मेरे लिए काम नहीं करता है, मुझे कोई अन्य उपयोगी जानकारी नहीं है, और कोई प्रतिक्रिया शरीर नहीं है, मुझे 400 खराब अनुरोध मिलता है। – Shavais
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized;
throw new WebException("令牌码不正确", new InvalidTokenException());
- 1. मैं प्रतिक्रिया कैसे समाप्त कर सकता हूं और HTTP कोड 404 वापस भेज सकता हूं?
- 2. मैं ServletFilter में ServletResponse से HTTP स्थिति कोड कैसे प्राप्त कर सकता हूं?
- 3. मैं संग्रहीत प्रक्रिया से एक्सएमएल कैसे वापस कर सकता हूं?
- 4. REST: 404 HTTP स्टेटस कोड मैपिंग
- 5. आईआईएस 7 और HTTP स्टेटस कोड हैंडलिंग
- 6. मैं सरणी से यादृच्छिक मान कैसे वापस कर सकता हूं?
- 7. NSUrlConnectionDelegate - आईओएस में http स्टेटस कोड
- 8. मैं डब्लूसीएफ आरईएसटी सेवा में स्लैश और अन्य 'यूआरएल संवेदनशील' पात्रों को कैसे पास कर सकता हूं?
- 9. मैं एक विम स्क्रिप्ट में पर्ल विधि से मूल्य कैसे वापस कर सकता हूं?
- 10. मैं एक विधि से एक अनाम प्रकार कैसे वापस कर सकता हूं?
- 11. आरईएसटी HTTP प्रमाणीकरण - कैसे?
- 12. मैं उसी विधि से 2 ArrayList कैसे वापस कर सकता हूं
- 13. एंड्रॉइड कस्टम ड्रायबल स्टेटस
- 14. मैं पायथन में सिस्टम जानकारी कैसे वापस कर सकता हूं?
- 15. curl_multi का उपयोग कर एकाधिक यूआरएल से HTTP स्टेटस कोड प्राप्त करना?
- 16. मैं डब्लूसीएफ वेबएपीआई वेबगेट
- 17. मैं कोड से माउस इवेंट कैसे अनुकरण कर सकता हूं?
- 18. मैं जावा से .NET कोड कैसे कॉल कर सकता हूं?
- 19. मैं XHR.onreadystatechange कैसे अपना परिणाम वापस कर सकता हूं?
- 20. मैं एक स्कोप्ड लॉक कैसे वापस कर सकता हूं?
- 21. मैं मेमोरीस्ट्रीम डॉक्क्स फ़ाइल एमवीसी कैसे वापस कर सकता हूं?
- 22. जब मैं डीबगिंग शुरू करता हूं तो मैं डब्लूसीएफ परीक्षण क्लाइंट को खोलने से कैसे रोक सकता हूं?
- 23. मैं एक एसवीएन प्रतिबद्ध कैसे वापस कर सकता हूं?
- 24. मैं धीरे-धीरे HTTP की सेवा कैसे कर सकता हूं?
- 25. मैं "अवैध स्टेटस अपवाद: बीनफ़ैक्टरी को प्रारंभ या पहले से बंद नहीं कर सकता" से कैसे सामना कर सकता हूं?
- 26. मैं स्थानीय डब्लूएसडीएल फ़ाइल का उपयोग कर डब्लूसीएफ सेवा का उपभोग कैसे कर सकता हूं?
- 27. जर्सी स्टेटस कोड
- 28. मैं रुबी में धागे से मूल्य कैसे वापस कर सकता हूं?
- 29. कस्टम HTTP त्रुटि विवरण वापस नहीं कर सकता दूरस्थ रूप से
- 30. एक सफलता के रूप में वापस लौटा स्टेटस कोड HTTP 400
ठीक यह सब मानते हैं नियंत्रण के लिए जवाब आपकी सेवा कार्यान्वयन में अपना स्थान बनाया। क्या होगा यदि वे कुछ पूरी तरह अमान्य यूरी पास करते हैं? आप अपनी सेवा में सभी अप्रत्याशित हिट के लिए 404 प्रदान करने का अनुमान कैसे लगा रहे हैं? –