Używam funkcji PHPcurl
do wysyłania danych na serwer WWW z mojego lokalnego komputera. Mój kod wygląda następująco:
$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);
Niestety nie jestem w stanie wyłapać błędów typu 404, 500 czy awaria sieci. Jak więc dowiem się, że dane nie zostały przesłane do pilota ani nie zostały z niego pobrane?
curl_exec()
zwrot jest fałszywy, czycurl_error()
zwraca jakąś wiadomość?curl_setopt($ch,CURLOPT_FAILONERROR,true);
Jeśli
CURLOPT_FAILONERROR
takfalse
, błędy http nie spowodującurl
błędów.źródło
możesz wygenerować błąd curl po jego wykonaniu
a oto kod błędu curl
źródło
Ponieważ chcesz przechwytywać błędy związane z siecią i błędy HTTP, poniższe rozwiązania zapewniają lepsze podejście:
Testy:
źródło
źródło