Ошибка получения HTTP-кода статуса ответа из заголовков при использовании curl - PullRequest
0 голосов
/ 31 октября 2018

Я использую curl для извлечения некоторых данных из платежного шлюза, шлюз возвращает 500 кодов состояния в разы и 200 кодов состояния в заголовках в другое время. Я пытаюсь получить код состояния из заголовков, используя curl, но он показывает ноль (который является кодом выхода) вместо 200 или 500 (код состояния).

Я использую curl_getinfo ($ ch, CURLINFO_HTTP_CODE); который не работает ...

Функция скручивания

public function global_Curl_payStat($data, $url, $try = 1)
    {
        //dd($_ENV['API_ENDPOINT_NGINX_IP'] . '/' . $url);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, ($_ENV['API_ENDPOINT_NGINX_IP'] . '/' . $url));
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        //Prevents usage of a cached version of the URL
        curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
        //Listen for status code to see if 200 or 500
        $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $response = json_decode(curl_exec($ch));
        dd($statusCode);

        curl_close($ch);

        return $response;
    }

1 Ответ

0 голосов
/ 31 октября 2018

Ваш звонок на curl_getinfo() поступит до того, как вы на самом деле позвоните с curl_exec(). Нет информации, пока вы не выполните:)

$response = json_decode(curl_exec($ch));
//Listen for status code to see if 200 or 500
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
...