当我尝试访问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文件显示正常,但如果我启动私有会话,则不会返回任何内容。
谢谢
答案 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');