Php krijg een fatal error maar ik moet een error krijgen van een webservices
Ik ben bezig om met een webservices te werken, ik kan al redelijk met de methodes van de webservices communiceren. Echter zit ik nu wel behoorlijk vast. Ik heb een inlog script geschreven, die eerst valideert of er ingelogt mag worden en vervolgens de data die bij de username hoort opvraagt om deze in een sessie te plaatsen, zodat er naar het gedeelte van de site kan worden geredirct waarvoor je moet zijn ingelogt. Ik gebruik hiervoor ook een api key, om het script zelf mee te valideren.
Echter het probleem is het volgende, als ik de api key fout mee stuur krijg ik een fatal error, op de line waar ""apiKey" => "$key"," staat. maar dit is eigenlijk niet wat ik wil krijgen. De webservice zelf heeft namelijk een ingebouwde class die fouten met de API key afhandeld. Alleen door de fatal error krijg ik niets terug. Ik heb al geprobeerd een try en catch in te bouwen. Maar dan blijft hij volgens mij ook hangen op het zelfde punt, maar laat hij geen error zien. Ik blijf dan namelijk gewoon hangen in het inlog script en zie een lege pagina voor mij. Dit is het script wat ik gebruik:
try{
$client = new SoapClient("http://portal.webservice.com/AccountService.svc?singleWsdl");
}
Catch(exception $e){
$response = $client->CheckUserCridentialsValid(array(
"apiKey" => "$key",
"userName" => "$username",
"password" => "$password"));
if($response->CheckUserCridentialsValidResult) {
$response_model = $client->Account(array(
"apiKey" => "$key",
"userName" => "$username"));
$_SESSION['AccountID'] = $response_model->AccountResult->AccountID;
$_SESSION['UserName'] = $username;
redirect_to('index.php');
} else {
$_SESSION['username'] = $username;
$_SESSION['message'] = $message = "Username or Password incorrect! <br>";
redirect_to('welcome.php');
}}
ik weet niet of dit uberhaupt mogelijk is met PHP en of ik wel op de juiste manier dit probleem probeer aan te pakken. Ik hoop ook dat de vraag duidelijk is anders, hoor ik dat ook graag!
- errors weer te geven (error_reporting en display_errors)
- je logs er op na te slaan
- de documentatie van de API / gebruikte code te raadplegen
- te googlen naar dit euvel
?
ja, ik krijg dus een fatal error: Fatal error: Uncaught SoapFault exception: [s:Client] Wrong apiKey in... . Ik zal eens google hoe ik mijn log er op na moet slaan. PHP Error logs? en googled heb ik de hele middag. Maar ik weet dus niet of wel naar het goeie google. php catch exception and continue, maar ik kom er niet helemaal uit. Heb nog nooit met webservices gewerkt of met catch en try.
Verder staat er vrij duidelijk: "wrong apiKey" oftewel je credentials kloppen niet.
Wat je dus moet doen om deze fouten op te vangen / op te lossen is:
- het juiste type opvangen
- je parameters zelf fixen
Gewijzigd op 19/07/2015 21:59:41 door Thomas van den Heuvel