L A

L A

  • NA
  • 170
  • 171.6k

WebAPI - 405 - The resource does not support http 'POST'

Jul 24 2018 2:16 PM
Hi, I'm working on WebAPI, with a controller having C[HttpPost] R[HttpGet] U[HttpPut] D[HttpDelete]
  1. /// <summary>    
  2. /// WebAPI - Controller    
  3. /// </summary>    
  4. public class PersonController : ApiController    
  5. {    
  6.     static IList<Person> personsList = LoadPersons();    
  7.     
  8.     /// <summary>    
  9.     /// Get list of all Persons    
  10.     /// </summary>    
  11.     /// <returns><list type="Person">Persons</list></returns>    
  12.     [HttpGet]    
  13.     [Route("api/Person/")]    
  14.     public IHttpActionResult GetPerson()    
  15.     
  16.     {    
  17.         return Ok(personsList);    
  18.     }    
  19.     
  20.     /// <summary>    
  21.     /// Get a person based on input - entityId    
  22.     /// </summary>    
  23.     /// <param name="entityId"></param>    
  24.     /// <returns>A single person matching id</returns>    
  25.     [HttpGet]    
  26.     [Route("api/Person/{entityId:int?}")]    
  27.     public IHttpActionResult GetPersonById([FromUri]int? entityId)    
  28.     {    
  29.         if (entityId != null)    
  30.         {    
  31.        var person = personsList.Where(p => p.EntityId == entityId).SingleOrDefault();    
  32.             return Ok(person);    
  33.         }    
  34.         return BadRequest("Invalid EntityId !!, can't have invalid chars");    
  35.     }    
  36.         
  37.     /// <summary>    
  38.     /// Add a new person with specifed data    
  39.     /// </summary>    
  40.     /// <param name="personData"></param>    
  41.     /// <returns>Ok, if success</returns>    
  42.     [HttpPost]    
  43.     public IHttpActionResult SavePerson([FromBody]Person personData)    
  44.     {    
  45.         if (personData != null)    
  46.         {    
  47.             personsList.Add(personData);    
  48.             return Ok();    
  49.         }    
  50.         return BadRequest("Invalid !!");    
  51.     }    
  52.         
  53.     /// <summary>    
  54.     /// Modify existing person's email-Id based on Id    
  55.     /// </summary>    
  56.     /// <param name="personData"></param>    
  57.     /// <returns></returns>    
  58.     [HttpPut]    
  59.     public IHttpActionResult UpdatePerson([FromBody]Person personData)    
  60.     {    
  61.         if (personData != null)    
  62.         {    
  63.             var person = personsList.Where(p => p.EntityId == personData.EntityId).SingleOrDefault();    
  64.             person.Email = personData.Email;    
  65.             return Ok(person);    
  66.         }    
  67.         return BadRequest("Invalid !!");    
  68.     }    
  69.         
  70.     /// <summary>    
  71.     /// Remove a specifc person based on Id    
  72.     /// </summary>    
  73.     /// <param name="entityId"></param>    
  74.     /// <returns></returns>    
  75.     [HttpDelete]    
  76.     public IHttpActionResult RemovePerson(int? entityId)    
  77.     {    
  78.         if (entityId != null)    
  79.         {    
  80.     var delPerson = personsList.Where(p => p.EntityId == entityId).SingleOrDefault();    
  81.             personsList.Remove(delPerson);    
  82.             return Ok();    
  83.         }    
  84.         return BadRequest("Invalid !!");    
  85.     }    
  86.     private static List<Person> LoadPersons()    
  87.     {    
  88.         var persons = new List<Person>();    
  89.         persons.Add(new Person { Email = "ron's Email", EntityId = 01, Name = "ron" });  
  90.     persons.Add(new Person { Email = "saun's Email", EntityId = 02, Name = "saun" });    
  91.         persons.Add(new Person { Email = "jae's Email", EntityId = 03, Name = "jae" });  
  92.         return persons;    
  93.     }    
  94. }  
I'm able to do GET request and list person(s)
 
But when i try to do a POST/ PUT/ DELETE request i'm getting response as '"The requested resource does not support http method 'POST'/ 'PUT'/ 'DELETE''.
 
What am i missing here? help me to figure my mistake

Answers (11)