Как исправить ошибку "Ошибка cURL #: передача закрыта с оставшимися незавершенными данными чтения" на PHP - PullRequest
0 голосов
/ 21 февраля 2020

Я пробую curl на php, и у меня есть синтаксис curl на Lumen 5. *, но если данные большие, не может работать

        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 60,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'GET',
            CURLOPT_HTTPHEADER => array(
                'Cache-Control: no-cache',
                'Content-Type: application/json',
                'Authorization: Bearer blablabla' 
            ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

        if ($err) {
            echo 'cURL Error #:' . $err;
        } else {
            if ($this->isJSON($response) == False) {
                return $response;
            }
            return json_decode($response, true);
        }

, но если данные большие, ошибка показа

cURL Error #:transfer closed with outstanding read data remaining

как это исправить?

1 Ответ

0 голосов
/ 21 февраля 2020

Вы должны установить параметры KEEPALIVE и KEEPIDLE в curl.

Это обсуждалось и в прошлом, в сообществе жрет, и это был способ решения этой проблемы. Так как пользователи Guzzle скручиваются изнутри, это решение также должно соответствовать вашим потребностям.

    CURLOPT_TCP_KEEPALIVE => 10,
    CURLOPT_TCP_KEEPIDLE => 10

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...