Acumatica 6.0 WSE以gzip编码返回数据

时间:2016-10-07 16:31:33

标签: gzip acumatica

Web服务端点功能已针对6.0进行了更改,现在对请求的响应是GZIP编码的。有没有办法在发送WSE请求时禁用它?

我们有一个C ++ DLL,它一直在使用Acumatica 5.3而没有问题,但只要我们将其中一个测试系统升级到6.0,我们就无法再处理响应。从长远来看,我们将通过在代码中添加GZIP支持来解决这个问题,但是在短期内我们需要能够支持6.0而无需对代码进行重大更改。

例如,在5.3版本中,我们发送了以下请求

 <soap:Envelope xmlns:soap="schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:xsd="w3.org/2001/XMLSchema"; xmlns="acumatica.com/entity/5.30.001.004/OzLINK_WSE/… xsi:type="StockItem">
<InventoryID xsi:type="StringSearch">
<Value>5001</Value>
<Condition>Equal<‌​/Condition>
</Invento‌​ryID>
</entity>
</Get>‌​
</soap:Body>
</soap:E‌​nvelope>

并且这正确地返回了Stock Item 5001的数据。注意:所有XMLNS元素都在Envelope标签中。

但是在6.0中,同一个请求因大错误消息而失败,我们发现我们必须更改移动XMLNS元素的请求

<soap:Envelope xmlns:soap="schemas.xmlsoap.org/soap/envelope/">

<soap:Body xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:xsd="w3.org/2001/XMLSchema">
<Get xmlns="acumatica.com/entity/5.30.001.004/OzLINK_WSE/… xsi:type="StockItem"><ReturnBehavior>All</ReturnBehavior>
<In‌​ventoryID xsi:type="StringSearch">
<Value>5001</Value>
<Condition>Equal<‌​/Condition
></Invento‌​ryID>
</entity>
</Get>‌​</soap:Body></soap:E‌​nvelope>

我们还注意到6.0返回的XML的结构略有不同,我们现在有一个之前没有的p4命名空间,这导致了我们目前解决的解析逻辑的一些问题。 / p>

由于 克里斯

0 个答案:

没有答案