Me estoy desesperando, todo lo que quiero es un simple manejo de errores cuando el servicio web SOAP de PHP no responde un mensaje de error servicio de inicio de sesión abajo. ¡Por favor, ayúdame!PHP SOAP error catching
Por el momento se sigue mostrando el error (junto con advertencias ...):
Fatal error: SOAP-ERROR: Parsing WSDL
Aquí está la secuencia de comandos:
<?php
session_start();
$login="0000000000000nhfidsj"; //It is like this for testing, It will be changed to a GET
$username = substr($login,0,13); //as password is always 13 char long
//(the validation is done int he javascript)
$password = substr($login,13);
try
{
ini_set('default_socket_timeout', 5); //So time out is 5 seconds
$client = new SoapClient("http://192.168.0.142:8080/services/Logon?wsdl"); //locally hosted
$array = $client->login(array('username'=>$username,
'password'=>$password));
$result = $array->return;
}catch(SoapFault $client){
$result = "0";
}
if($result == "true")//as this would be what the ws returns if login success
{
$_SESSION['user'] = $login;
echo "00";
}
else
{
echo "01 error: login failed";
}
?>
Honestamente, cualquier error fatal en la extensión SOAP debe ser reportado como un error ya que no hay ningún caso en el que su código cause un error fatal. 404 WSDL debe ser un SoapFault como usted espera. – ColinM