gpt4 book ai didi

c# - Web API 2 - Restful 服务 - URL 编码

转载 作者:行者123 更新时间:2023-11-30 22:02:07 24 4
gpt4 key购买 nike

我已经使用 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 编码,但它没有命中 Controller

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 编码。

关于c# - Web API 2 - Restful 服务 - URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27170432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com