In my web api controller i have a function with following codes
[HttpPost] public HttpResponseMessage Post(string schooltypeName) { _schoolTypeService.RegisterSchoolType(schooltypeName); var message = Request.CreateResponse(HttpStatusCode.Created); return message; }
When i am calling with fiddler i am getting this error
{"Message":"The requested resource does not support http method 'POST'."}
my fiddling parameters are
Header
User-Agent: Fiddler Host: myhost:8823 Content-Type: application/json; charset=utf-8 Content-Length: 26
Request body
{"schooltypeName":"Aided"}
Requesting url are
http://myhost:8823/SchoolType
( i configured url ,GET is working with this url)
Whats wrong here ?
POST. In web services, POST requests are used to send data to the API server to create or update a resource. The data sent to the server is stored in the request body of the HTTP request. The simplest example is a contact form on a website.
Change your action to be like Post([FromBody]string schooltypeName)
as by default string type is expected to come Uri.
Updated:
Change your body to just "Aided"
as currently you would need a class to make the deserialiation work otherwise (ex:class School { public string SchoolTypeName { get; set; } }
See the using namespace at the top of the controller, if you're using System.Web.Mvc, then this problem might be occurred:
Use this:
using System.Web.Http;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With