Magento API因特定(机架空间)托管而出现故障

时间:2014-01-08 11:38:49

标签: api magento soap-client

我正在研究Magento Soap API v2并开发桌面C#应用程序。

正确行为:

  1. 在另一个托管上,这个magento api无论如何都能正常工作
  2. 在此托管(机架空间)上,如果我通过浏览器打开api链接(http://162.242.xx.xx/dnmagento/index.php/api/v2_soap?wsdl=1),它可以正常工作
  3. 不受欢迎的行为:在此托管(机架空间)上,我无法以编程方式连接api(c#或php)

      private void login_Click(object sender, EventArgs e)
      {
          magWebReference.MagentoService mag = new magWebReference.MagentoService();
    
          // Throws exception here
          string sessionID=mag.login("apiuser","password"); 
    
          MessageBox.Show(sessionID);
      }
    

    连接时出现以下错误

      

    SOAP-ERROR:解析WSDL:无法从“http://162.242.xx.xx/dnmagento/index.php/api/v2_soap/index/?wsdl=1”加载:无法加载外部实体“http://162.242.xxx.xx/dnmagento/index.php/api/v2_soap/index/?wsdl=1

    注意:在/ v2_soap之后报告的错误 / index /会自动添加。而在提供的链接中没有/ index /.

2 个答案:

答案 0 :(得分:0)

当PHP soap客户端本身无法解析SOAP客户端的URL时,这通常是个问题。我以前遇到过类似的问题,发现问题出在服务器设置中。 magento服务器设置可能拒绝任何没有附加用户代理字符串的调用。请检查HTTP访问日志并确认是否存在问题。

答案 1 :(得分:0)

我在升级到Magento 1.9.0.1时遇到了同样的问题。我用this official patch

解决了这个问题