我想制作一个传递4个参数的Web API。
这是我的路线:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{email}/{firstname}/{lastname}/{source}"
);
这是方法签名
public string GetId(string email, string firstname, string lastname, string source)
这是主叫网址
http://fakedomain.com/api/Contacts/[email protected]&firstname=joe&lastname=shmoe&source=123
我收到404错误。
如果我在路由配置中将每个参数设置为可选,并使用默认值设置每个参数,则会调用该参数。但是,每个参数都获取默认值,而不是传递的值。
我感觉自己接近了,我想念什么?
确保您在WebApiConfig.cs文件中具有默认的api路由设置。
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}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ContactApi",
routeTemplate: "api/{controller}/{email}/{firstname}/{lastname}/{source}"
);
}
}
http://fakedomain.com/api/Contacts/[email protected]&firstname=joe&lastname=shmoe&source=123
注意:我用localhost替换了法域,它可以工作...(localhost/api/Contacts/[email protected]&firstname=joe&lastname=shmoe&source=123)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句