使用PHP SoapClient访问Magento API会导致重定向 - 通过浏览器访问工作

时间:2013-08-16 13:44:22

标签: php magento soap soap-client

我正在使用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访问同一个网址时,我收到来自$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.

在正常的http请求正常工作时,如何重定向SoapClient

任何帮助非常感谢

1 个答案:

答案 0 :(得分:2)

  

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