我想将一个字符串参数发送到我的Web API端点。字符串是:TCmBqAKPGVMlTQ2Exw/viQ==
,因此我们看到它包含/
。我正在编码此字符串,现在值为TCmBqAKPGVMlTQ2Exw%2FviQ%3D%3D
,但我仍然无法访问API端点。
这是我得到的错误:
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ} message: "Http failure response for http://localhost:31676/api/TokenTest/check-token-validation/96/TCmBqAKPGVMlTQ2Exw%2FviQ%3D%3D:
404 Not Found“name:”HttpErrorResponse“ok:false status:404 statusText:”Not Found“url:”http://localhost:31676/api/TokenTest/check-token-validation/96/TCmBqAKPGVMlTQ2Exw%2FviQ%3D%3D“proto:HttpResponseBase
如果您使用的是Attribute routing,可以尝试下面的代码示例:
[Route("api/[controller]")]
[ApiController]
public class TokenTestController : ControllerBase
{
[HttpGet]
[Route("check-token-validation/{id}")]
public ActionResult<IEnumerable<string>> CheckTokenValidation(int id, string para)
{
return new string[] { "value1", "value2" };
}
}
如果请求是https://localhost:xxxx/api/TokenTest/check-token-validation/96?para=TCmBqAKPGVMlTQ2Exw/viQ==
,您将得到正确的结果:
但总是建议使用url编码。
您可以使用函数encodeURIComponent(yourstring)
来编码URL中的特殊字符。
并将网址更改为http://localhost:31676/api/TokenTest/check-token-validation/96?parameterName=TCmBqAKPGVMlTQ2Exw%2FviQ%3D%3D