我正在尝试从提供程序访问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);
未分配回复。
谢谢!
答案 0 :(得分:1)
除SOAP Fault之外,您的代码中没有其他警告/错误吗?
不确定它是否为WSDL。始终可以尝试使用online tool验证WSDL。
您是否使用过getLastResponse()和getLastRequest()方法?听起来你可能在请求开始时发送了一些垃圾。我在测试时总是做的另一件事就是关闭WSDL缓存。
ini_set("soap.wsdl_cache_enabled", 0);