मैं अपने आवेदन से उपयुक्त एचटीपी कोड और प्रतिक्रिया वापस करने की कोशिश कर रहा हूं लेकिन मैं संघर्ष कर रहा हूं। ऐसा लगता है कि विशिष्ट http प्रतिक्रियाओं को वापस करने के 2 तरीके हैं।वेबएपीआई एक्शन विधि में HttpResponseException फेंकना खाली 200 प्रतिक्रिया
तरह से मैं इसके साथ सौदा करना चाहते फेंक कर एक HttpResponseException
:
public Information Get(int apiKey)
{
if (!_users.Authenticate(apiKey))
{
var response = new HttpResponseMessage();
response.StatusCode = (HttpStatusCode)401;
response.ReasonPhrase = "ApiKey invalid";
throw new HttpResponseException(response);
}
return _info.Get();
}
हालांकि, जब मैं करता हूँ यह प्रतिक्रिया मैं देख रहा हूँ बस एक खाली 200 प्रतिक्रिया है!
यह भी लगता है कि आप भी एक HttpResponseMessage
इस तरह वापस जाने के लिए अपनी कार्रवाई विधि के हस्ताक्षर बदल सकते हैं:
public HttpResponseMessage Get()
{
if (!_users.Authenticate(apiKey))
{
return Request.CreateResponse((HttpStatusCode) 401, "ApiKey invalid");
}
return Request.CreateResponse((HttpStatusCode) 200, _info.Get());
}
मैं वास्तव में यह करने के लिए अगर मैं इसे मदद कर सकते हैं नहीं करना चाहती, मैं ज्यादा होगा इसके बजाय मेरा वापसी प्रकार उस ऑब्जेक्ट के रूप में है जिसे मैं HttpResponseMessage
में हर बार लपेटने के बजाय पुनर्प्राप्त करने का प्रयास कर रहा हूं।
क्या कोई कारण है कि पहली विधि संदेश के साथ 401 के बजाय खाली 200 लौट रही है जैसा कि मैं चाहता हूं?
इसके लिए चीयर्स - अंत में अपवादों से निपटने के लिए मैंने फ़िल्टर का उपयोग करके अंत किया था धन्यवाद कि आप मुझे उस एमएसडीएन लेख – jcvandan