在ASP.NET Web API的控制器中给出以下方法:
[HttpGet]
[ApiRoute("resource/{id}/end-point)]
public IHttpActionResult MethodName (int id, string clientTimeZone)
{
...
}
每当我向http://localhost:5684/api/v1/resource/1/end-point?client_timezone=%2B0500提交GET请求时,clientTimezone都会以%2B0500的形式传递给clientTimeZone,并解析编码的' +'签到一个空格字符。为什么ASP.NET无法解析URI?
在标题中我有" ContentType = application / json"和持有人令牌
我想要获得" + 0500"进入我的方法,但它变成" 0500"
答案 0 :(得分:2)
您在使用api时是否使用Content-Type
application/x-www-form-urlencoded
?这将对待' +'在您的网址中使用时字符作为空格。
此处有更多详情: When to encode space to plus (+) or %20?
尝试将Content-Type
更改为application/json
,然后查看参数绑定是否符合预期。