0

我有以下格式的 URL,我想解码查询字符串并重写 URL。

https://api.test.abc.com/parameters?username=%7Busername%7D

如何使用策略解码用户名并以以下格式重写:

API端点:/api/affiliated/users/userInfo/?username=abcd.gmail.com

提前谢谢了。

4

3 回答 3

1

您可以在 APIM 策略中使用 System.Net.WebUtility

System.Net.WebUtility.UrlDecode(context.Request.Url.Query["username"]
于 2021-04-19T11:53:35.890 回答
0

你可以手动解码。

context.Request.Url.Query["username"] | Replace:'%7B','{' | Replace:'%7D','}'

将该用户名保存在一个变量中并在重写模板中使用它。

我也想知道一些在 APIM 策略中解码 url 的方法。

于 2020-08-07T13:14:30.987 回答
0

我们不能直接解码,因为没有选项,我们必须删除第一个查询参数并通过更改和解码查询参数来重写URI。我使用下面的代码片段来执行它。(因为问题也是用 visibleToUserId 替换 URL 中的 userName 以及解码值。)

@((Convert.ToBase64String(Encoding.UTF8.GetBytes((string)context.Request.MatchedParameters[\"visibleToUserId\"]))).Replace('=', '~').Replace('+', ' -')。代替('/', '_'))
于 2021-04-25T14:09:16.790 回答