Код заголовка HTTP-ответа игнорируется при использовании cURL

#http #curl #header #response

#http #curl #заголовок #ответ

Вопрос:

У меня есть приведенный ниже код, но по какой-то причине я не могу получить правильный код HTTP-ответа, поскольку он всегда возвращается как 0. Я попытался протестировать страницу, на которой есть только «заголовок («HTTP / 1.1 404 не найден»);» и запустить cURL на этой странице, но все равно я получаю 0. Когда я перехожу непосредственно на страницу в браузере, код заголовка правильный. Есть идеи?

         $curl = curl_init();
        curl_setopt($curl, CURLOPT_HTTPHEADER, Array (
        "Content-Type: " . $content_type
        ));         
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPGET, TRUE);
        curl_setopt($curl, CURLOPT_USERAGENT, RESTClient :: USER_AGENT);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($curl, CURLOPT_HTTPHEADER, TRUE);
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ); 
        curl_setopt($curl, CURLOPT_USERPWD, $auth);     
        $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        echo $httpcode;
        $result = curl_exec($curl);
        curl_close($curl);
  

Ответ №1:

Естественно, код возврата не может быть получен до тех пор, пока запрос не будет выполнен, что происходит с вызовом curl_exec(). Переместите свой curl_getinfo после этой строки, и он должен работать.