Azure APIM Set Body策略问题:请求头映射请求体失败求助
问题解决:将请求头映射到请求体的Set Body策略修正
你的Set Body策略代码存在语法错误,导致无法正常执行,具体问题和修正方案如下:
错误点分析
context.Request.Headers.GetValueOrDefault("X-Type",""这一行缺少闭合的双引号,属于语法不完整,会直接导致脚本执行失败。
修正后的完整策略代码
<set-body>@{ var requestBody = context.Request.Body.As<JObject>(preserveContent: true); // 修复引号缺失问题,确保默认值为空字符串的语法正确 requestBody["type"] = context.Request.Headers.GetValueOrDefault("X-Type", ""); return requestBody.ToString(Newtonsoft.Json.Formatting.None); }</set-body>
额外说明
- 使用
ToString(Newtonsoft.Json.Formatting.None)可以确保输出的JSON为紧凑格式,与目标负载格式完全匹配;若不要求严格紧凑格式,直接使用requestBody.ToString()也可实现需求。 preserveContent: true的设置是正确的,它会保留原始请求体内容,避免后续策略无法读取请求体数据。
内容的提问来源于stack exchange,提问作者Satheesh Kumar
相关产品推荐
相关产品推荐

