访问时出现Magento API错误

时间:2013-11-11 10:03:38

标签: api magento

当我尝试访问API时,我收到错误,我开始与此连接:

$api = new SoapClient(BASE_URL."/api/?wsdl");

注意:网址很好。

我一直在制作一个插件,它适用于我的1.7.0.2版本,但现在我尝试了另一个人Magento的1.7.0.2版本,它报告错误。

    a:5:{i:0;s:152:"SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://WEBSITE.com//api/?wsdl' : failed to load external entity "http://WEBSITE.com//api/?wsdl" 
";i:1;s:3536:"#0 /var/www/clients/client20/web25/web/app/design/adminhtml/default/default/template/moloni/classes/core.class.phtml(283): SoapClient->SoapClient('http://WEBSITE...') 

当我尝试访问该页面时,如果我已登录后台,则XML api文件显示正常,但如果我启动私有会话,则不会返回任何内容。

谢谢

2 个答案:

答案 0 :(得分:3)

您需要在.htaccess文件中启用API调用。删除行中的“#”

#    RewriteRule ^api/([a-z][0-9a-z_]+)/?$ api.php?type=$1 [QSA,L]

修改 此行为webserver重写引擎添加URL重写规则,该引擎将所有/ api / [type]调用重定向到api.php文件。你想避免在你的API调用中使用RewriteEngine,你可以尝试直接使用api.php,就像这样

$api = new SoapClient(BASE_URL."/api.php?type=soap");

type参数指定要使用的协议。开箱即用的magento支持xmlrpc,soap,soap_v2和rest。

答案 1 :(得分:0)

还要确保启用了服务S0AP, php_openssl, openssl, curl 应该启用这些服务。

调用肥皂客户端,例如$api = new SoapClient('http://website.com/api/v2_soap?wsdl=1');