1

我正在尝试从提供程序访问 Web 服务 (SOAP)。我无法控制服务器响应。为此,我使用 Zend_Soap_Client 在构造函数中传递 WDSL 和选项,我可以执行 getFunctions,但是当尝试访问第一个 Soap 方法时,我得到

[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);            

并且没有分配响应。

谢谢!

4

1 回答 1

1

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

不确定它是 WSDL。可以随时尝试使用在线工具验证 WSDL 。

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

ini_set("soap.wsdl_cache_enabled", 0);

于 2012-08-24T15:13:43.917 回答