我试图在API中定义一个策略,将XML转换为JSON。我们的后端API目前只支持JSON,但我希望客户端能够发布XML。我可以成功地将JSON转换为XML作为出站策略,但是入站策略只会导致空的post。
工作外游政策是:
<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设置为text/xml,但是requestbin中的请求总是显示一个空的post。
我试过使用下面@Miao-蒋的有用评论进行调试。跟踪显示策略已被应用,但内容长度已被删除。我想知道这是否是根本原因?
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。
发布于 2015-09-14 17:44:15
我试着复制你的问题。您能否确认您的后端是否支持传输编码:分块?
xml到json策略中所发生的事情是,它移除原始的内容长度标头,并将其替换为传输编码:分块,因为在转换后长度将是不同的,我们无法预测长度。
当我用支持传输编码:分块的后端进行测试时,它正常工作。当我用另一个不支持它的后端进行测试时,我看到了您描述的相同行为。所以我想知道这是否也发生在你身上。
https://stackoverflow.com/questions/32445688
复制相似问题