我需要为后端 api 连接字符串,前端 api 只是接受一个 Id 值,例如:ProjectId,而后端请求的形式是 www.formUrlencoded 字符串,并且需要请求的形式为 data="{查询":"项目(ProjectId=@(context.Variables["ProjectId"])}.
策略定义中设置的字符串是 "{Query":"Project(ProjectId='@(context.Variables["ProjectId"])'",但是在查看跟踪时,实际字符串是: {查询":"项目(ProjectId=@(context.Variables["ProjectId"])}
应该是 {Query":"Project(ProjectId='1234567') 我尝试了多种组合,但无法正常工作。任何建议,非常感谢。
<set-query-parameter name="data" exists-action="override">
<value>{"Query":"Project(ProjectId=@(context.Variables["ProjectId"])"}</value>
</set-query-parameters>
使用下面给出的策略将查询字符串值传递为
{Query":"Project(ProjectId='1234567')"}
。
政策-
<policies>
<inbound>
<base />
<set-variable name="ProjectId" value="1234567" />
<set-query-parameter name="data" exists-action="override">
<value>@($"{{\"Query\":\"Project(ProjectId='{context.Variables.GetValueOrDefault<string>("ProjectId")}')\"}}")</value>
</set-query-parameter>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
此策略会将查询字符串参数添加到后端 URL,如下所示 -