我已经使用Web API 2创建了RESTful服务。我可以通过以下途径返回有关库存项目的信息:
http://localhost/api/stockitems/{stockCode}
i.e. http://localhost/api/stockitems/BOMTEST1
我的系统中有包含正斜杠的股票代码,即CA / BASE / SNG / BEECH。自然,由于斜杠,我无法使用标准约定来请求详细信息。
http://localhost/api/stockitems/CA/BASE/SNG/BEECH
我已经尝试了URL编码,但是没有击中控制器
http://localhost/api/stockitems/CA%2FBASE%2FSNG%2FBEECH
我刚拿到404
如何在Web API中处理此问题?
您将需要更改您的WebApiConfig。如果您在此地方不使用ID,则可以在配置的该部分中添加通配符({* id}):
config.Routes.MapHttpRoute(
name: "Default",
routeTemplate: "api/{controller}/{*id}",
defaults: new { id = RouteParameter.Optional }
);
我建议为此情况创建一个特定的路由(假设这是您唯一需要允许斜线的情况):
config.Routes.MapHttpRoute(
name: "StockItems",
routeTemplate: "api/stockitems/{*id}",
defaults: new { controller = "StockItems", id = RouteParameter.Optional }
);
您无需使用这种方式对URL进行url编码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句