我正在使用apache cxf在soap客户端上写magento。 到目前为止,一切工作都很好,如创建产品更改类别,更新产品等。这可以在我的本地计算机上工作或在本地网络中的magento安装。
所以我在网上的服务器上建立了一个magento商店。除了一个产品媒体的创建之外,所有对api的调用都有效。
这是来自服务器的响应。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>Sender</faultcode>
<faultstring>Invalid XML</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
也许有人可以帮我解决这个问题。
提前致谢...
弗里茨
答案 0 :(得分:1)
我有同样的问题。为我修复的是调用https,因为我有一个.htaccess重写,强制所有流量通过SSL。
如果您正在执行将网址重写为https的操作,请在代码中更改网址
$proxy = new SoapClient('http://example.com/api/v2_soap/?wsdl');
到
$proxy = new SoapClient('https://example.com/api/v2_soap/?wsdl');
答案 1 :(得分:0)
我找到了解决这个问题的方法。
这可以通过在apache cxf客户端中转换消息重组来解决。
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setAllowChunking(false);
答案 2 :(得分:0)
如果在为.Net Core C#(using this)生成Magento soap客户端的情况下遇到此错误,则可能需要使用默认构造函数创建客户端,而不是提供端点并自己绑定。默认的构造函数设置了客户端的许多参数,包括端点URL,安全模式,允许cookie等。