我目前正在使用一些非常简单的SOAP / PHP来度过非常沮丧的时光。我花了大约一个星期的时间尝试一切我能想到的,在不同版本的PHP的多个不同服务器上,它们仍然会抛出同样的错误。这是代码:
function test() {
$client = new SoapClient('http://xxx', array("login" => "sandbox", "password" => "password"));
print_r($client->__getFunctions());
$ap_param = array();
// it dies here. CheckServiceAvailable is a valid function returned in __getFunctions()
$result = $client->__soapcall('CheckServiceAvailable', $ap_param);
if (is_soap_fault($result)) {
trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
}
在错误捕获可以捕获任何内容之前它出错。 Apache日志显示与以下相同的错误:
Fatal error: Uncaught SoapFault exception: [s:Processing error] in C:\soap.php:13 Stack trace: #0 C:\soap.php(13): SoapClient->__soapCall('CheckServiceAva...', Array) #1 C:\soap.php(23): test() #2 {main} thrown in C:\soap.php on line 13
如果没有能够发现错误,我完全不知道该做什么。我真的不想尝试nusoap。
有什么想法吗?
答案 0 :(得分:0)
使用:
try
{
$result = $client->__soapcall('CheckServiceAvailable', $ap_param);
}
catch (SoapFault $e)
{
echo "Cannot call method CheckServiceAvailable: {$e->getMessage()}";
}