Question

$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);

J'utilise cURL à mon projet. Je reçois CODE HTTP des sites Web. Mais quand j'essaye "asdasd" ($ url = "asdasd"), de retour HTTP CODE 200. Mais « asdasd » est pas un site Web. Pourquoi HTTP CODE 200?

Était-ce utile?

La solution

Vous pouvez vérifier la valeur de retour de curl_exec premier. Il est dit dans manuel:

  

retour TRUE sur la réussite ou FALSE en cas d'échec. Toutefois, si l'option CURLOPT_RETURNTRANSFER est réglé, il renvoie le résultat en cas de succès, FALSE en cas d'échec.

Pour curl_getinfo il y a une note de côté :

  

L'information recueillie par cette fonction est maintenue si la poignée est réutilisée. Cela signifie que si une statistique est surchargée en interne par cette fonction, l'info précédente est retourné.

Alors que HTTP 200 pourrait bien être le résultat d'un appel de cURL précédent.

Autres conseils

Une autre erreur possible peut se produire si vous développez en local et vous utilisez les services de gestion DNS personnalisés, vous pouvez probablement obtenir des pages d'erreur gérées comme OpenDNS est en train de faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top