我试图使用以下代码将C#应用程序连接到Magento1.6(通过Magento V2):
using (Mage_Api_Model_Server_Wsi_HandlerPortTypeClient proxy = new Mage_Api_Model_Server_Wsi_HandlerPortTypeClient())
{
string sessionId = proxy.login("XXXXXXX", "XXXXXXXXXXX");
Console.WriteLine(sessionId);
}我得到了以下错误:
Error in deserializing body of reply message for operation 'login'.我用Fiddler检查了转会,结果是:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento">
<SOAP-ENV:Body>
<ns1:loginResponseParam>
<result>fc094df96480dbbcdXXXXXXXXXXXXXXX</result>
</ns1:loginResponseParam>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>我在用:
有什么办法解决(或调试)这个问题吗?
发布于 2011-11-03 17:53:13
我非常不熟悉整个"Web == Soap == WS-*“开发堆栈,但我确实知道Magento1.6为其API引入了名为”WS法规“的东西。您需要使用V2 Soap,还需要设置
System -> Configuration -> Magento Core Api -> General Settings -> WS-I Compliance“是”(在Magento系统的管理中)。这将告诉Magento使用soap_wsi处理程序而不是soap_v2处理程序。您可以看到处理Magento Soap请求的控制器
app/code/core/Mage/Api/controllers/V2/SoapController.php不知道这会不会对你有帮助,但你包括
而且这些词是一致的,所以它有一个外部的机会,它会有帮助。
https://stackoverflow.com/questions/7996931
复制相似问题