I have a API Controller with a Method that recieve a parameter. When I call it from the client, get an 404 error. If a re-write de method with ni parameter it works.
Here is my API controller:
public class ClientController : ApiController
{
[HttpGet]
public List<User> GetAAA(int userCode)
{
return null;
}
}
Here is my Client...
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(apiUrl);
client.DefaultRequestHeaders.Accept.Clear();
List<User> list;
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
string uriString = string.Format("{0}/{1}", "http://localhost:7734/api/Client/GetAAA", 1783);
HttpResponseMessage response = await client.GetAsync(uriString);
if (response.IsSuccessStatusCode)
list = response.Content.ReadAsAsync<List<User>>().Result;
else
throw new Exception("Error");
}
Even if I write in navigator http://localhost:7734/api/Client/GetAAA/1783 it says "Page not found".
My WebApiConfig is like this:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
What am I missing?