13-06-2009, 02:40 PM
(Modification du message : 13-06-2009, 03:00 PM par Sephi-Chan.)
Bonjour,
Dans le cadre du service Web du portail JeuWeb, je mets au points une API en PHP (afin de favoriser l'utilisation de ce service) mais je me heurte à un problème : la gestion des erreurs en cas de réponse HTTP défavorable.
Quand je lance le script PHP (en ligne de commande, en l'occurrence) en utilisant un mauvais mot de passe, je reçois l'erreur :
Tout simplement parce que côté serveur, mon application renvoie une erreur 403 quand l'authentification HTTP échoue. Tout fonctionne bien quand les identifiants sont corrects (le code 200 est alors renvoyé).
Ma question est donc : comment gérer cela ? PHP propose-t-il nativement des API pour gérer les erreurs à l'appel de fichiers distants ?
Le but est que toute installation PHP puisse utiliser mon API, si ça n'existe pas, j'utiliserai cURL…
Si vous le souhaitez, l'application (minimaliste) est accessible en ligne (hébergée sur mon MBP : http://sephichan.homelinux.net:3000/) pour quelques tests, voici ses coordonnées.
Merci d'avance,
Sephi-Chan
Dans le cadre du service Web du portail JeuWeb, je mets au points une API en PHP (afin de favoriser l'utilisation de ce service) mais je me heurte à un problème : la gestion des erreurs en cas de réponse HTTP défavorable.
Code :
$login = "Jambon";
$password = "test";
$bad_password = "badpassword";
$domain = "localhost:3000";
$document = new DOMDocument();
$document->load("http://{$login}:{$bad_password}@{$domain}/projects.xml");
echo $document->saveXML();
Quand je lance le script PHP (en ligne de commande, en l'occurrence) en utilisant un mauvais mot de passe, je reçois l'erreur :
Citation :Warning: DOMDocument::load(http://...@localhost:3000/projects.xml): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
in /Users/Romain/Development/PHP/webservice.php on line 17
Warning: DOMDocument::load(): I/O warning : failed to load external entity "http://Jambon:badpassword@localhost:3000/projects.xml" in /Users/Romain/Development/PHP/webservice.php on line 17
Tout simplement parce que côté serveur, mon application renvoie une erreur 403 quand l'authentification HTTP échoue. Tout fonctionne bien quand les identifiants sont corrects (le code 200 est alors renvoyé).
Ma question est donc : comment gérer cela ? PHP propose-t-il nativement des API pour gérer les erreurs à l'appel de fichiers distants ?
Le but est que toute installation PHP puisse utiliser mon API, si ça n'existe pas, j'utiliserai cURL…
Si vous le souhaitez, l'application (minimaliste) est accessible en ligne (hébergée sur mon MBP : http://sephichan.homelinux.net:3000/) pour quelques tests, voici ses coordonnées.
Code :
$login = "Jambon";
$password = "test";
$bad_password = "badpassword";
$domain = "sephichan.homelinux.net:3000";
$document = new DOMDocument();
$document->load("http://{$login}:{$bad_password}@{$domain}/projects.xml");
echo $document->saveXML();
Merci d'avance,
Sephi-Chan