首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Web 2- restful服务- URL编码

Web 2- restful服务- URL编码
EN

Stack Overflow用户
提问于 2014-11-27 12:08:13
回答 1查看 889关注 0票数 2

我使用web 2创建了一个RESTful服务。我有以下返回股票项目信息的路径:

代码语言:javascript
运行
复制
http://localhost/api/stockitems/{stockCode}

i.e. http://localhost/api/stockitems/BOMTEST1

我的系统中有包含正斜杠的股票代码,即CA/BASE/SNG/BEECH。当然,由于斜杠的原因,我不能使用标准约定来要求详细信息。

代码语言:javascript
运行
复制
http://localhost/api/stockitems/CA/BASE/SNG/BEECH

我尝试过URL编码,但它没有击中控制器

代码语言:javascript
运行
复制
http://localhost/api/stockitems/CA%2FBASE%2FSNG%2FBEECH

我只是一直得到404

如何在Web中处理这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-27 12:15:21

您需要更改您的WebApiConfig。如果在这个位置上不使用id,只需在配置的该部分添加一个通配符({*id}):

代码语言:javascript
运行
复制
config.Routes.MapHttpRoute(
    name: "Default",
    routeTemplate: "api/{controller}/{*id}",
    defaults: new { id = RouteParameter.Optional }
);

我建议为本例创建一个特定的路由(假设这是您需要允许斜杠的唯一场景):

代码语言:javascript
运行
复制
config.Routes.MapHttpRoute(
    name: "StockItems",
    routeTemplate: "api/stockitems/{*id}",
    defaults: new { controller = "StockItems", id = RouteParameter.Optional }
);

您不需要以这种方式对url进行url编码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27170432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档