पर GET जैसा व्यवहार किया गया है, मैं एक वेबएपी नियंत्रक बना रहा हूं, और मैं पंजीकरण के लिए एक नया उपयोगकर्ता सबमिट करने के लिए एक HttpPost अनुरोध का उपयोग करने का प्रयास कर रहा हूं। यह मेरे लोकहोस्ट पर ठीक काम करता है, लेकिन जब मैं इसे Azure पर प्रकाशित करता हूं तो मुझे 405 विधि को संदेश के साथ त्रुटि की अनुमति नहीं मिलती है: "अनुरोधित संसाधन http विधि 'GET' का समर्थन नहीं करता है।HTTP POST विधि WebApi
मैं कार्यों की जांच करने के डाकिया का उपयोग, और इसलिए मैं अनुरोध है, जो इस प्रकार है देखने के लिए कोड उत्पन्न इस्तेमाल किया:
POST /api/account/register/student HTTP/1.1
Host: www.l3cture.com
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 27c1b2ab-96ad-4a99-b271-4030402768e7
तो मैं स्पष्ट रूप से देख सकते हैं कि अनुरोध एक पोस्ट है। और निम्नलिखित अपनी विशेषताओं के साथ नियंत्रक कार्रवाई कोड (मैं वर्तमान में यह सरल बना दिया है ताकि कोई मॉडल पोस्ट कर रहे हैं, और एक ही व्यवहार होता है)
[HttpPost]
[Route("register/student")]
[AllowAnonymous]
public async Task<IHttpActionResult> PostStudent(/*RegisterStudent model*/)
{
//Implementation of register
return Ok();
}
मैं विशेषताओं के नाम स्थान चिह्नित किया है और है यह System.Web.Http है, इसलिए इसे एमवीसी नेमस्पेस से भ्रमित नहीं किया जा रहा है।
दिलचस्प बात यह है कि जब मैं एचटीपीजीट के लिए विधि बदलता हूं, और पोस्टमैन का उपयोग करके इसे पोस्ट करता हूं, तो मुझे एक स्टेटस 200 मिलता है। यह लगभग एचटीपीपोस्ट अनुरोधों की तरह मेरे नियंत्रक द्वारा एचटीपीजीट की तरह व्यवहार किया जा रहा है।
मैंने अन्य स्थानों पर HttpPut और HttpDelete का उपयोग किया है, और वे सभी ठीक काम करते हैं।
मुझे इस समस्या से निपटने के लिए अनिश्चितता है, और सोच रहा था कि किसी के पास कोई विचार है या नहीं? अगर मुझे स्पष्टीकरण के लिए और कोड पोस्ट करने की आवश्यकता है तो कृपया मुझे बताएं।
अग्रिम धन्यवाद
जब मैं http के बजाय https का उपयोग करता हूं तो काम करने लगता है। इसे –
बंद किया जा सकता है क्या आप बॉडी फॉर पोस्ट में अपना मॉडल पास कर रहे हैं? लगता है कि आप अपने विधि पैरामीटर में [FromBody] विशेषता खो रहे हैं। –
मैंने कोशिश की [FromBody] और यह काम नहीं किया था। हालांकि मैंने अभी https निर्दिष्ट करके इसे आजमाया है, और ऐसा लगता है कि यह काम करता है। मुझे थोड़ी देर के लिए एक बेवकूफ होना चाहिए –