SOAP Web服务疑难解答

时间:2010-07-29 12:35:31

标签: php soap

我试图通过向其传递值数组来调用Web服务PersonalDetails_Update。这些值已成功写入Web服务旨在执行的数据库中。但是,它也应该返回写入数据库的记录的ID。但我没有得到任何回报。只是一个没有XML或基础源的空白屏幕。

使用getLastRequest时,我收到此错误:

Fatal error: Uncaught SoapFault exception: [Client] Function ("getLastRequest") is not a valid method for this service in

用于将数据传递到Web服务和请求/响应标头的代码:

$client->PersonalDetails_Update(array('personaldetails' => $params));
printf("<br/> Request = %s </br>", htmlspecialchars($client->getLastRequest()));
$result = $client->__getLastResponse();
$header = $client->__getLastResponseHeaders();

使用getLastResponse和getLastResponseHeaders时,我什么都没收到。

1 个答案:

答案 0 :(得分:3)

你忘记了“__”:

printf("<br/> Request = %s </br>", htmlspecialchars($client->__getLastRequest()));

你的soap客户端认为“getLastRequest”是一种肥皂服务的方法,而不是肥皂客户端方法。

你也应该告诉我们你使用的是什么肥皂客户端。我假设您使用php内置肥皂客户端...

使用__soapCall方法确保您正在向服务发出请求:

try {
    $result = $client->__soapCall('PersonalDetails_Update', array('personaldetails' => $params));
} catch (SoapFault $exception) {
    echo 'soap fault occured: '.$exception->getMessage().'<br/>';
}

您应该检查返回的值是否为soap错误..请参阅manual