我试图通过向Web Service 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时,我得不到任何回报。
发布于 2010-07-29 12:41:10
您忘记了"__":
printf("<br/> Request = %s </br>", htmlspecialchars($client->__getLastRequest()));
您的soap客户端以这种方式认为"getLastRequest“是soap服务的方法,而不是soap客户端方法。
此外,您还应该告诉我们您使用的是什么soap客户端。我假设你使用php内置的soap客户端...
使用__soapCall方法确保您正在向服务发出请求:
try {
$result = $client->__soapCall('PersonalDetails_Update', array('personaldetails' => $params));
} catch (SoapFault $exception) {
echo 'soap fault occured: '.$exception->getMessage().'<br/>';
}
您应该检查返回值是否为soap错误。请参阅manual
https://stackoverflow.com/questions/3362478
复制