允许在 Web API 参数中使用特殊字符
Posted
技术标签:
【中文标题】允许在 Web API 参数中使用特殊字符【英文标题】:Allow special characters in Web API parameters 【发布时间】:2015-04-18 20:36:15 【问题描述】:我需要能够处理REST
调用中的特殊字符。特别是 .
和 /
字符。
例如我有一个GET
路由/api/division/someDivision
。现在,使用/api/division/West Canada/
的参数调用这条路线,我得到了一个回报,一切都按预期工作。但是,我需要能够支持其他名称为“美国西南地区”的业务部门和“北美/南美”。通过我的路由传递这些参数会通过 api 返回一个404
,因为我认为http 处理程序认为.
和/
字符使它认为我指的是另一个域或目录。有没有办法解决这个问题,以便我可以传递所需的参数?
路线:
[HttpGet]
[Route("division/information")]
public IHttpActionResult DivisionInfo(string division)
...omitted for brevity
【问题讨论】:
【参考方案1】:您可以尝试这样设置路线:
[HttpGet]
[Route("/api/information")]
public IHttpActionResult DivisionInfo(string division)
那你可以拨打GET http://website.com/api/information?division=text.with/special./characters
。
【讨论】:
有没有办法做到并保持通话RESTful? 为搜索字符串添加查询参数并没有什么非 RESTful 风格。本文给出了一个这样做的路由示例:vinaysahni.com/…【参考方案2】:尝试在参数前添加[FromUri]
:
Route("api/Person/ID/[FromUri]UserName")]
【讨论】:
能否请您详细说明一下或提供一些有关此信息的链接以上是关于允许在 Web API 参数中使用特殊字符的主要内容,如果未能解决你的问题,请参考以下文章
如何验证 UITextView 以使其不允许像“&”这样的特殊字符?