【问题标题】:Magento API error when accessingMagento API 访问时出错
【发布时间】:2013-11-11 10:03:37
【问题描述】:

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

谢谢

【问题讨论】:

    标签: api magento


    【解决方案1】:

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

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

    编辑 此行为 Web 服务器重写引擎添加 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。

    【讨论】:

    • 那条线在哪里?在根文件夹中没有.htaccess,我可以创建它吗? :)
    • 这个文件是与 Magento 核心捆绑在一起的,你可能找不到它,因为它是隐藏的。尝试在文件管理器中启用“显示隐藏文件”。您可以从 Magento 官方存储库下载示例 .htacess 文件 - svn.magentocommerce.com/source/branches/1.8/.htaccess
    • 如果您想避免在 API 调用中使用 RewriteEngine,您可以尝试直接使用 api.php,例如 $api = new SoapClient(BASE_URL."/api.php?type=soap") ;
    • 顺便说一句,如果您在浏览器中打开 URL WEBSITE.com//api/?wsdl,您可能会看到有关您的问题的更多详细信息。
    • 如果我尝试像那样加载它,我会收到以下错误:schemas.xmlsoap.org/soap/envelope"> WSDL SOAP-ERROR: Parsing WSDL: could not load from 'perfumesbook.com/index.php/?type=soap&wsdl=1' : failed to load external entity "perfumesbook.com/index.php/?type=soap&wsdl=1" -ENV:Fault>
    【解决方案2】:

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

    $api = new SoapClient('http://website.com/api/v2_soap?wsdl=1');这样调用soap客户端

    【讨论】:

    • 是的,它们已启用 :)
    • 我觉得你应该在主机文件中为其他人做条目
    • 不,那里没有这样的代码:它甚至不返回错误,它只是在我尝试访问时返回一个空白页,而无需登录后台 s:
    • 试试 $api = new SoapClient('website.com/api/v2_soap?wsdl=1');
    • 好的,我会在另一个网站上进行测试,从外部网站访问
    猜你喜欢
    • 2016-12-03
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多