【问题标题】:Magento REST API fault: invalid xmlMagento REST API 错误:xml 无效
【发布时间】:2017-06-16 11:32:13
【问题描述】:

看起来我的问题和这个问题一样:Magento Rest Api Invalid XML 但它仍然没有回答..

我刚刚在我的本地主机上安装了带有示例数据的 magento 1.9,并尝试测试 REST API。 我在管理面板中将 REST 角色和 REST 属性设置为 ALL。 但是当我尝试在浏览器中输入以下 URL 时:http://magentohost/api/rest/products?limit=2

我收到回复:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <script/>
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>Sender</faultcode>
      <faultstring>Invalid XML</faultstring>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

error_log 为空,

访问日志:

GET /magentohost/api/rest/products?limit=2 HTTP/1.1" 500

看起来我错过了设置中的某些内容.. 感谢您的帮助!

【问题讨论】:

  • 以防万一这对某人有所帮助 - 确保您设置的 API 密钥不包含任何特殊字符(以及此处也作为答案提到的步骤)

标签: xml rest api magento fault


【解决方案1】:

您需要编辑 .htaccess 文件。 在 .htaccess 的第 12 行取消注释“Options -Multiviews”行。

【讨论】:

  • 当您没有取消注释该行时,为什么会出现错误? (这个解决方案对我不起作用,但我想更好地理解错误。)
  • 来自 Apache 文档“多视图搜索(由多视图选项启用),服务器执行隐式文件名模式匹配,并从结果中进行选择。” Magento 需要能够按名称搜索文件。
【解决方案2】:

如果您在获取 wsdl 时遇到问题,请确保您的网址末尾有 ?wsdl。例如:

https://dev2.mydomain.org/index.php/api/v2_soap/index/

会说“无效的 XML”但是

https://dev2.mydomain.org/index.php/api/v2_soap/index/?wsdl

会起作用的。

【讨论】:

    【解决方案3】:

    对于我为 .Net Core C# (using this) 生成的 Magento soap 客户端,我只需要使用默认构造函数创建客户端,而不是提供端点并自己绑定。默认构造函数设置了客户端的很多参数,包括端点URL、安全模式、允许cookies等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      相关资源
      最近更新 更多