【问题标题】:Accessing Magento API with PHP SoapClient results in redirect - Access over browser works使用 PHP SoapClient 访问 Magento API 会导致重定向 - 通过浏览器访问有效
【发布时间】:2013-08-16 13:44:21
【问题描述】:

我正在使用 PHP 的 SoapClient 访问 Magento SOAP API v2

$soap_client = new SoapClient($wsdl_url, array('trace' => 1));

wsdl 网址是http://www.example.org/index.php/api/v2_soap/?wsdl=1
在浏览器中打开 url 会生成一个有效的 xml 文档。
但是当我使用 SoapClient 访问相同的 url 时,我从 $soap_client->__getLastResponse() 收到以下错误消息:

Invalid webservice adapter specified.

查看带有$soap_client->__getLastRequestHeaders() 的请求标头表明调用正在重定向到http://www.example.org/api/v2_soap/index/

POST /api/v2_soap/index/ HTTP/1.1
Host: www.example.org
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.4.3
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:Mage_Api_Model_Server_V2_HandlerAction"
Content-Length: 542

在浏览器中调用该 url (http://www.example.org/api/v2_soap/index/) 会输出与 SoapClient 返回 (Invalid webservice adapter specified.) 相同的错误消息

SoapClient 怎么可能在正常的 http 请求正常工作时被重定向?

非常感谢任何帮助

【问题讨论】:

标签: php magento soap soap-client


【解决方案1】:

MultiViews 的效果如下:如果服务器收到一个 请求 /some/dir/foo,如果 /some/dir 启用了 MultiViews,并且 /some/dir/foo 不存在,则服务器读取目录 查找名为 foo.* 的文件,并有效地伪造类型映射 它命名所有这些文件,为它们分配相同的媒体类型和 如果客户要求其中之一,它将具有的内容编码 他们的名字。然后它选择与客户的最佳匹配 要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 2015-08-13
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多