我不得不使用php(Zend Framework)中的Web服务,一切似乎都很好,但当我想通过这样的try-catch系统从服务器检索响应时:
try{
$response = $client->METHOD_TO_CONSUME(array(
'DATA1' => $data1,
'DATA2' => $data2
)
);
} catch (SoapFault $e) {
Mage::log("Fault Message: " . $e->getMessage());
Mage::log("Fault Code: " . $e->faultcode . ' ' . $e->faultstring . ' ' . $e->detail);
Mage::log("Fault: " . (string) $e);
}
但后来我犯了一个错误:SOAP-ENV:客户端SOAP-ENV:客户端内部服务器错误SoapDoc::CheckNameSpace:错误的xml名称空间
起初我认为这是WSDL的问题,但后来我用SoapUi进行了一些测试,一切都很顺利。我不知道会发生什么?
经过数小时的调查,我解决了问题,问题是Soap版本,默认情况下,Zend使用Soap 1.2。当我把它改成1.1版本时,一切都很完美。
$params = array(
'soapVersion' => SOAP_1_1
);
$client = new Zend_Soap_Client($url, $params);
我希望能帮助某人:D
问候