【问题标题】:Azure rest api - APIM policy XML errorsAzure rest api - APIM 策略 XML 错误
【发布时间】:2021-04-23 11:29:20
【问题描述】:

我们遇到了 API 管理问题,我们的客户希望我们自动将 API 级别策略添加到我们在那里配置的 API。
我们正在尝试使用 bash 脚本来解决这个问题(我们不能使用 powershell 或任何其他工具),但我们遇到了一个问题:API 需要 Content-Type:application/json,但其中一个值应该是XML string.

我尝试了多种方法为此请求正文,但我在响应中收到错误,例如:"message":"An error occurred while parsing EntityName. Line 6, position 74."

"Data at the root level is invalid. Line 1, position 1."

有人知道我们应该如何构成我们的请求正文吗?
我们用 jq 做这个,像这样:

jq -Rs \
   --arg contentFormat "xml" \
   '{properties: {format: $contentFormat, value: . }}' <${policy}

policy 是从 GUI 手动生成的策略复制而来的 xml 文档的路径。

感谢任何帮助!

我怀疑问题出在 XML 格式上,但我们尝试以各种方式对其进行编码,但没有帮助。

【问题讨论】:

    标签: xml azure jq azure-api-management azure-rest-api


    【解决方案1】:

    试试这个:

    policy=`cat <path of file>/test.xml`
    jq -Rs    --arg contentFormat "rawxml"    '{properties: {format: $contentFormat, value: . }}' <<<$policy
    

    结果

    为了快速测试,请使用此请求正文直接在邮递员中更新策略:

    【讨论】:

      【解决方案2】:

      与此同时,我设法解决了这个问题,必须替换 XML 的特殊字符(“;&;)。 以前我们对整个文档都这样做,而不仅仅是在值中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-02
        • 2017-08-28
        • 2021-06-08
        • 2020-10-29
        • 1970-01-01
        • 2023-01-12
        • 2019-06-01
        • 2018-12-18
        相关资源
        最近更新 更多