允许在 Web API 参数中使用特殊字符

问题描述 投票:0回答:2

我需要能够在

REST
通话中处理特殊字符。特别是
.
/
字符。

例如我有一个

GET
路线
/api/division/{someDivision}
。现在,使用参数
/api/division/West Canada/
调用这条路线,我得到了回报,一切都按预期进行。但是,我需要能够支持名称为“美国西南部”的其他业务部门。和“北美/南美”。通过我的路由传递这些参数会通过 api 返回
404
,因为我认为 http 处理程序认为
.
/
字符使它认为我指的是另一个域或目录。有没有办法解决这个问题,这样我就可以传递所需的参数?

路线:

[HttpGet]
[Route("{division}/information")]
public IHttpActionResult DivisionInfo(string division)
{ 
  ...omitted for brevity
rest asp.net-web-api special-characters asp.net-web-api2 asp.net-web-api-routing
2个回答
0
投票

您可以尝试这样设置路线:

[HttpGet]
[Route("/api/information")]
public IHttpActionResult DivisionInfo(string division)

然后你可以打电话

GET http://website.com/api/information?division=text.with/special./characters
.


0
投票

尝试在参数前添加

[FromUri]

Route("api/Person/{ID}/[FromUri]{UserName}")]
© www.soinside.com 2019 - 2024. All rights reserved.