J'utilise les fonctions PHPcurl
pour publier des données sur le serveur Web à partir de ma machine locale. Mon code est le suivant:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($c);
if (curl_exec($c) === false) {
echo "ok";
} else {
echo "error";
}
curl_close($c);
Malheureusement, je ne suis pas en mesure de détecter des erreurs telles que 404, 500 ou une panne de réseau. Alors, comment puis-je savoir que les données n'ont pas été publiées ou récupérées de la télécommande?
curl_exec()
retour est faux, lecurl_error()
message renvoie-t-il?curl_setopt($ch,CURLOPT_FAILONERROR,true);
Si
CURLOPT_FAILONERROR
c'est le casfalse
, les erreurs http ne déclencheront pas d'curl
erreurs.la source
vous pouvez générer une erreur curl après son exécution
et voici le code d'erreur curl
la source
Étant donné que vous souhaitez détecter les erreurs liées au réseau et les erreurs HTTP, ce qui suit fournit une meilleure approche:
Tests:
la source
la source