我使用web 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中处理这个问题?
发布于 2014-11-27 12:15:21
您需要更改您的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编码。
https://stackoverflow.com/questions/27170432
复制相似问题