2012-08-22 39 views
1

我想从提供者访问Web服务(SOAP)。我没有控制服务器的响应。对于这个我使用,Zend_Soap_Client通过构造函数中的WDSL和选项,我可以做getFunctions,但是当试图访问第一个SOAP方法我得到Zend_Soap_Client得到“看起来我们没有XML文档”错误

[Sender] looks like we got no XML document 

环顾四周,检查答案,我从一开始后,与soapUI的服务器我看到答案缺少XML声明:

<?xml version="1.0" encoding="XXXXXXX"?> 

那么,有没有奥比的方法,使Zend_Soap_Client省略基于XML声明XML验证?假设缺乏声明是我的问题。

下面是我用这个代码:

private $_connection_settings = array('login' => self::API_user, 'pwd' => self::API_password, 'key'=> self::API_Key); 


private static $CONNEXION_PARAMS = array(           
             'soap_version' => SOAP_1_1, 
             'encoding'  => 'UTF-8' 
            ); 

... 

//somewhere in my code: 

$client = new Zend_Soap_Client('http://server_URL?wsdl', self::$CONNEXION_PARAMS); 
$response = $client->fistSoapMethod($this->_connection_settings);    

和响应不分配。

谢谢!

+0

它缺少编码部分吗?将其视为UTF8。您的问题可能与字节顺序标记(BOM)有关。参见:http://stackoverflow.com/questions/4313952/soap-looks-like-we-got-no-xml-document – ficuscr

回答

1

除了SOAP错误,您的代码中没有其他警告/错误?

不确定它是WSDL。总是可以使用online tool来验证WSDL。

你用过getLastResponse()和getLastRequest()方法吗?听起来你可能会在请求开始时发送一些垃圾。我在测试时做的另一件事是关闭WSDL缓存。

ini_set("soap.wsdl_cache_enabled", 0);

相关问题