200 HTTP-код в не-url-строках - PullRequest
       35

200 HTTP-код в не-url-строках

1 голос
/ 07 января 2011
$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);

Я использую cUrl в моем проекте. Я получаю HTTP-код веб-сайтов. Но когда я пытаюсь "asdasd" ($ url = "asdasd"), возвращается HTTP-код 200. Но «asdasd» не является веб-сайтом. Почему HTTP-код равен 200?

Ответы [ 2 ]

1 голос
/ 07 января 2011

Вы можете сначала проверить возвращаемое значение из curl_exec указано руководство :

Возвращает TRUE при успехе или FALSE при ошибке.Однако, если установлена ​​опция CURLOPT_RETURNTRANSFER, она вернет результат в случае успеха, FALSE в случае ошибки.

Для curl_getinfo имеется примечание :

Информация, собранная этой функцией, сохраняется, если ручка используется повторно.Это означает, что если статистика не будет переопределена внутренне этой функцией, будет возвращена предыдущая информация.

Так что HTTP 200 вполне может быть результатом предыдущего вызова cURL.

0 голосов
/ 08 апреля 2011

Другая возможная ошибка может произойти, если вы разрабатываете локально и используете настраиваемые управляемые службы DNS, тогда вы, вероятно, можете получить некоторые страницы управляемых ошибок, как это делает OpenDNS.

...