如何在 APIM 策略中解码 URL
How to decode URL in APIM policy
我想解码 URL 中的查询参数。
我将查询参数值传递为
"somevalue%"
但是当我获取参数值时它显示为
"somevalue%25"
我只希望值为“somevalue%”。
目前我正在使用 Replace ,但我想要一些解码方法。
谢谢。
您可以为此使用 System.Net.WebUtility.UrlDecode
:
<trace source="original">
<message>@(context.Request.Url.Query.GetValueOrDefault("parm"))</message>
</trace>
<trace source="converted">
<message>@(System.Net.WebUtility.UrlDecode(context.Request.Url.Query.GetValueOrDefault("parm")))</message>
</trace>
在跟踪中,您会看到如下结果:
trace (0 ms)
{
"message": "Expression was successfully evaluated.",
"expression": "context.Request.Url.Query.GetValueOrDefault(\"parm\")",
"value": "somevalue%25"
}
original (0 ms)
"somevalue%25"
trace (3 ms)
{
"message": "Expression was successfully evaluated.",
"expression": "System.Net.WebUtility.UrlDecode(context.Request.Url.Query.GetValueOrDefault(\"parm\"))",
"value": "somevalue%"
}
converted (0 ms)
"somevalue%"
我想解码 URL 中的查询参数。 我将查询参数值传递为
"somevalue%"
但是当我获取参数值时它显示为
"somevalue%25"
我只希望值为“somevalue%”。 目前我正在使用 Replace ,但我想要一些解码方法。
谢谢。
您可以为此使用 System.Net.WebUtility.UrlDecode
:
<trace source="original">
<message>@(context.Request.Url.Query.GetValueOrDefault("parm"))</message>
</trace>
<trace source="converted">
<message>@(System.Net.WebUtility.UrlDecode(context.Request.Url.Query.GetValueOrDefault("parm")))</message>
</trace>
在跟踪中,您会看到如下结果:
trace (0 ms)
{
"message": "Expression was successfully evaluated.",
"expression": "context.Request.Url.Query.GetValueOrDefault(\"parm\")",
"value": "somevalue%25"
}
original (0 ms)
"somevalue%25"
trace (3 ms)
{
"message": "Expression was successfully evaluated.",
"expression": "System.Net.WebUtility.UrlDecode(context.Request.Url.Query.GetValueOrDefault(\"parm\"))",
"value": "somevalue%"
}
converted (0 ms)
"somevalue%"