我在控制器中使用此路由
[HttpGet("Check/{*code}")]
几乎在所有情况下都可以使用,但是在参数开头不能使用斜杠,例如“ / 1HCZ0hVPloeftdvDHgGNg == ”会生成下一个网址
api/check//1HCZ0hVPloeftdvDHgGNg==
因此,控制器读取“ 1HCZ0hVPloeftdvDHgGNg ==“并崩溃解密代码。
如何解决?
答案 0 :(得分:0)
您没有说您正在使用的ASP.NET版本,但我认为
using System.Web.HttpUtility;
string queryString = UrlEncode("/1HCZ0hVPloeftdvDHgGNg==");
应该为您工作。它将把斜杠(和任何其他奇怪的字符)转换为Uri安全值。就您而言,queryString = "%2f1HCZ0hVPloeftdvDHgGNg%3d%3d"
另一方面,您还需要使用UrlDecode将其也恢复为原始字符串。
功能文档为here。