我的Web API中有一个方法如下
[HttpGet]
[Route("api/{ms}")]
public string GetString([FromUri]string ms)
{
return ms;
}
我将此方法称为{hostname}/api/foo
,它按预期返回传递的参数,但是当我使用{hostname}/api/4FCziX60HXpgt%2be8pLUTmd6RJQtSOaN9Ug--%40sprintpcs.com
调用此方法时,它失败并返回404。
此处4FCziX60HXpgt%2be8pLUTmd6RJQtSOaN9Ug--%40sprintpcs.com
是4FCziX60HXpgt+e8pLUTmd6RJQtSOaN9Ug--@sprintpcs.com
的数字编码表示。我只是使用javascript encodeURIComponent('4FCziX60HXpgt+e8pLUTmd6RJQtSOaN9Ug--@sprintpcs.com')
对其进行编码。
我尝试了多种解决方案,但始终失败。仅当我删除所有特殊字符后,此方法才有效。