如何在 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%"