gpt4 book ai didi

Azure Api 管理将 XML 转换为入站 JSON 策略

转载 作者:行者123 更新时间:2023-12-04 02:18:57 29 4
gpt4 key购买 nike

我正在尝试在 API 中定义一个策略以将 XML 转换为 JSON。我们的后端 API 目前仅支持 JSON,但我希望客户端能够发布 XML。我可以成功地将 JSON 转换为 XML 作为出站策略,但入站策略只会导致空帖子。

有效的出站政策是:

<outbound>
<base />
<json-to-xml apply="content-type-json" consider-accept-header="true" />
</outbound>

入站策略实际上是相反的:

<inbound>
<xml-to-json kind="direct" apply="content-type-xml" consider-accept-header="true" />
</inbound>

我创建了一个指向 requestbin 实例的新测试 API,以便我可以检查请求。我在 postman 中创建了一个简单的 XML 请求,并将 Content-Type 设置为 text/xml,但 requestbin 中的请求始终显示空帖子。

我尝试使用下面@miao- Jiang 的有用评论进行调试。跟踪显示策略已应用,但内容长度已被删除。我想知道这是否是根本原因?

2跟踪日志中的相关条目:

{"source":"xml-to-json", "timestamp":"2015-09-08T19:51:01.5919446Z", elapsed":"00:00:00.2116541", "data":"XML-to-JSON policy was applied. Original Content-Length header was removed as its value was invalidated. Content-Type header was set to 'application/json'."}

在这里您可以看到策略已应用,但请求中不存在 json。

最佳答案

我尝试重现您的问题。您能否确认您的后端是否支持 Transfer-Encoding: chunked ?

xml-to-json 策略中发生的情况是,它删除了原来的 content-length header ,并将其替换为 Transfer-Encoding:chunked,因为转换后长度会有所不同,我们无法预测长度。

当我使用支持 Transfer-Encoding:chunked 的后端进行测试时,它工作正常。当我使用不支持它的另一个后端进行测试时,我看到了与您描述的相同的行为。所以我想知道你是否也遇到过这种情况。

关于Azure Api 管理将 XML 转换为入站 JSON 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445688/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com