200 HTTP-Code bei Nicht-URL-Zeichenfolgen
-
30-09-2019 - |
Frage
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
//echo curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
Ich benutze Curl bei meinem Projekt. Ich erhalte HTTP -Code von Websites. Aber wenn ich "Asdasd" ($ url = "asdasd") versuche, ist der zurückgegebene HTTP -Code 200. "Asdasd" ist jedoch keine Website. Warum ist HTTP -Code 200?
Lösung
Möglicherweise möchten Sie den Rückgabewert aus überprüfen curl_exec
Erste. Es heißt in das Handbuch:
Kehrt zurück
TRUE
auf Erfolg oderFALSE
beim Versagen. Aber wenn dieCURLOPT_RETURNTRANSFER
Die Option ist festgelegt, das Ergebnis zum Erfolg zurückgibt.FALSE
beim Versagen.
Zum curl_getinfo
Da ist ein Randnotiz:
Die von dieser Funktion gesammelten Informationen werden aufbewahrt, wenn das Griff wiederverwendet wird. Dies bedeutet, dass die vorherigen Informationen zurückgegeben werden, wenn eine Statistik nicht intern durch diese Funktion außer Kraft gesetzt wird.
Damit HTTP 200 möglicherweise das Ergebnis eines früheren Curl -Aufrufs sein.
Andere Tipps
Ein weiterer möglicher Fehler kann auftreten, wenn Sie sich in Lokal entwickeln und benutzerdefinierte verwaltete DNS -Dienste verwenden. Dann können Sie wahrscheinlich einige verwaltete Fehlerseiten wie Opendns abrufen.