0

当我尝试访问 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 文件显示良好,但如果我启动私人会话,它不会返回任何内容。

谢谢

4

2 回答 2

3

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

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

编辑 此行为网络服务器重写引擎添加 URL 重写规则,它将所有 /api/[type] 调用重定向到 api.php 文件。您想避免使用 RewriteEngine 进行 API 调用,您可以尝试直接使用 api.php,如下所示

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

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

于 2013-11-11T10:47:32.543 回答
0

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

打电话给肥皂客户$api = new SoapClient('http://website.com/api/v2_soap?wsdl=1');

于 2013-11-11T11:11:55.960 回答