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

Azure Api管理将XML转换为JSON入站策略,azure,azure-api-management,Azure,Azure Api Management,我试图在API中定义一个将XML转换为JSON的策略。我们的后端API目前只支持JSON,但我希望客户端能够发布XML。我可以成功地将JSON转换为XML作为出站策略,但入站策略只会导致一篇空文章 工作出站策略是: <outbound> <base /> <json-to-xml apply="content-type-json" consider-accept-header="true" /> </outbound> 在这里,您

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

工作出站策略是:

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

在这里,您可以看到应用了策略,但是请求中没有json。

我试图重现您的问题。您能否确认您的后端是否支持传输编码:分块

xml-to-json策略中发生的事情是,它删除了原始的内容长度头,并将其替换为Transfer-Encoding:chunked,因为转换后长度将不同,我们无法预测长度


当我使用支持传输编码(chunked)的后端进行测试时,它工作正常。当我使用另一个不支持它的后端进行测试时,我看到了与您描述的相同的行为。因此,我想知道您是否也遇到了这种情况。

您是否尝试过使用API检查器调试该问题?谢谢你的指点。我已运行跟踪,可以看到策略已应用,但最终请求中仍然没有任何内容。请将跟踪发送到microsoft.com上的apimgmt,我们将进行查看。谢谢-已发送包含跟踪结果和此帖子链接的电子邮件。。谢谢你迄今为止的帮助。你找到解决办法了吗?我也有同样的问题。当我在出站策略中执行从
xml到json
的转换时,它工作正常,
json到xml
xml到json
,但是在入站策略中,它的结果是一个空体。谢谢。这似乎确实是个问题。我还没有设法让后端支持分块传输编码,但这是另一个问题。@phoenix任何符合HTTP/1.1的服务器都可以实现分块传输编码。您不必在服务器上执行任何与正常操作不同的操作。谢谢@darrelmiller。我在iis上使用NancyFX,当传输编码设置为分块时,它似乎永远不会收到正文。IIS已设置为允许分块传输,因此这里显然发生了其他事情。@phoenix大多数Nancy的人现在可能正在睡觉,但我通过Twitter向他们指出了这个问题,所以他们可能会在早上得到答案。
<inbound>
    <xml-to-json kind="direct" apply="content-type-xml" consider-accept-header="true" />
</inbound>
{"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'."}