Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The requested resource does not support HTTP method 'GET'

My route is correctly configured, and my methods have the decorated tag. I still get "The requested resource does not support HTTP method 'GET'" message?

[System.Web.Mvc.AcceptVerbs("GET", "POST")] [System.Web.Mvc.HttpGet] public string Auth(string username, string password) {   // Décoder les paramètres reçue.   string decodedUsername = username.DecodeFromBase64();   string decodedPassword = password.DecodeFromBase64();    return "value"; } 

Here are my routes:

config.Routes.MapHttpRoute(     name: "AuthentificateRoute",     routeTemplate: "api/game/authentificate;{username};{password}",     defaults: new { controller = "Game",                     action = "Auth",                      username = RouteParameter.Optional,                      password = RouteParameter.Optional },     constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) } );  config.Routes.MapHttpRoute(     name: "DefaultApi",     routeTemplate: "api/{controller}/{id}",     defaults: new { controller = "Home", id = RouteParameter.Optional } ); 
like image 621
Rushino Avatar asked Oct 07 '12 02:10

Rushino


People also ask

How do I fix the requested resource does not support HTTP method GET?

Simply changing the URL scheme of my request from HTTP to HTTPS fixed it.

What is Acceptverbs in Web API?

AcceptVerb is one attribute of the Web API actions. We can use it to allow a specific HTTP verb in a Web API action. Have a look at the following example. In this example we will allow both of the GET and POST verbs to do certain actions in the Web API.


Video Answer


1 Answers

Please use the attributes from the System.Web.Http namespace on your WebAPI actions:

    [System.Web.Http.AcceptVerbs("GET", "POST")]     [System.Web.Http.HttpGet]     public string Auth(string username, string password)     {...} 

The reason why it doesn't work is because you were using the attributes that are from the MVC namespace System.Web.Mvc. The classes in the System.Web.Http namespace are for WebAPI.

like image 162
Maggie Ying Avatar answered Oct 02 '22 13:10

Maggie Ying