2013-08-16 34 views
2

我访问与PHP的SoapClient的访问Magento的API导致重定向 - 在浏览器访问工作

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

的WSDL URL为http://www.example.org/index.php/api/v2_soap/?wsdl=1
打开网址在浏览器中的结果Magento的SOAP API第2版在一个有效的xml文档中。
然而当我访问与SoapClient的我从$soap_client->__getLastResponse()以下错误消息相同的URL:

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

你有没有尝试禁用多视图中的Apache .htaccess的? http://stackoverflow.com/questions/13932908/magento-api-invalid-webservice-adapter-specified – B00MER

+0

@ B00MER是的,这实际上帮助。你能解释为什么吗? – Horen

回答

2

多视图的效果如下:如果服务器接收用于/一些/目录/ FOO,一个 请求如果/一些/目录,使多视图,和 /一些/目录/ foo的不存在,则服务器读取目录 寻找名为foo。*的文件,并有效假货一个类型的地图 这名所有这些文件,赋予它们不同的介质类型和 内容编码它本来如果客户曾要求按名称 其中之一。然后,选择客户的 需求的最佳匹配。