如何处理uri中带有空格和斜杠的参数
本文关键字:空格 参数 何处理 处理 uri | 更新日期: 2023-09-27 18:16:23
我有一个名为Test controller的控制器,方法名为Test测试方法接受一个参数。但是当参数包含有空格斜杠的值时,web api给出错误。我正在使用WEB API 2.
[Route("Test/{companyName}")]
[AcceptVerbs("GET", "POST")]
[System.Web.HHttpGet]
public HttpResponseMessage Test(string companyName)
{
}
参数值为BTL/Force Motor Ltd.
我试过了,但是什么也没发生。
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
</schemeSettings>
</uri>
您需要对发送到API的值进行URL编码,如下所示:
http://yourApiDomainName/api/yourControllerName/?公司名称=线下20% % 2 f % 20迫使% 20电动机% 20有限公司
[SPACE]当URL编码为:%20
[斜杠]当URL编码为:%2F
你不需要在你的控制器中对这些值进行HTTP解码,因为这些值一旦到达你的控制器就会被框架解码。因此,您将在控制器中看到'BTL%20%2F%20Force%20Motor%20Ltd'为'BTL/Force Motor Ltd'。
查看URL编码的完整列表:http://www.w3schools.com/tags/ref_urlencode.asp
您的问题与WebAPI本身无关,而是ASP如何使用WebAPI。Net处理一些特定的url。这也可能影响传递到API的点("。")。以下是对我有用的方法:
将这一行添加到您的web。
system.web
下的config<httpRuntime relaxedUrlToFileSystemMapping="true" />
Phil hackack有一篇很棒的文章,详细介绍了