我想向我的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” 名称:“ HttpErrorResponse” 好的:错误 状态:404 statusText:“未找到” 网址:“ http://localhost:31676/api/TokenTest/check-token-validation/96/TCmBqAKPGVMlTQ2Exw%2FviQ%3D%3D” proto :HttpResponseBase
答案 0 :(得分:2)
如果您使用的是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编码。
答案 1 :(得分:1)
您可以使用函数encodeURIComponent(yourstring)
在URL中编码特殊字符。
然后将网址更改为http://localhost:31676/api/TokenTest/check-token-validation/96?parameterName=TCmBqAKPGVMlTQ2Exw%2FviQ%3D%3D