PHP сканирует данные через cURL (2): CURLINFO_HTTP_CODE возвращает 0

1. Описание проекта

Xiaogetong — это платформа, предоставляющая онлайн-видеоуслуги, такие как прямая трансляция, запись трансляции и короткое видео. В последнее время распространенные проблемы при стыковке с его API включают:

  1. Проблема с авторизацией: перед использованием API Gooselink требуется проверка авторизации, чтобы обеспечить законность доступа к API. Если информация авторизации неверна или недействительна, запрос API завершится ошибкой.

  2. Ошибка параметра: при вызове API Gooselink необходимо передать соответствующие параметры. Если параметры неверны или отсутствуют обязательные параметры, запрос API завершится ошибкой.

  3. Проблемы с сетевым подключением: запросы API могут завершаться сбоем из-за проблем с сетью.

  4. Проблема с ограничением частоты: Goosecom имеет определенное ограничение на частоту запросов API.Если вы часто вызываете API, Goosecom может ограничить вызовы API или закрыть права доступа к API.

  5. API возвращает исключение: формат данных, содержимое или статус, возвращаемые запросом API Gooselink, могут быть ненормальными, и эту ненормальную ситуацию необходимо обработать.
    вставьте сюда описание изображения

2. curl_getinfo возвращает исключение

1. Гуслинк SDK

    public static function curlGet($url, $queryparas = array(), $timeout = 5, $header = array(), $proxy = array())
    {
    
    
        if (!empty($queryparas)) {
    
    
            if (is_array($queryparas)) {
    
    
                $postData = http_build_query($queryparas);
                $url .= strpos($url, '?') ? '' : '?';
                $url .= $postData;
            } else if (is_string($queryparas)) {
    
    
                $url .= strpos($url, '?') ? '' : '?';
                $url .= $queryparas;
            }
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        if (!empty($header) && is_array($header)) {
    
    
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        }

        if (!empty($proxy)) {
    
    
            curl_setopt($ch, CURLOPT_PROXYAUTH, 1);
            curl_setopt($ch, CURLOPT_PROXY, $proxy['ip']);
            curl_setopt($ch, CURLOPT_PROXYPORT, $proxy['port']);
            curl_setopt($ch, CURLOPT_PROXYTYPE, 0);
        }

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
        curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

        $output = curl_exec($ch);
        if (is_array(json_decode($output, true))) {
    
    
            $output = json_decode($output, true);
        }

        $result['status_code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $result['body'] = $output;

        curl_close($ch);
        return $result;
    }

 curl_getinfo($ch, CURLINFO_HTTP_CODE);在使用过程中偶尔出现,会导致token掉包,无法更新用户信息。

2. По каким причинам CURLINFO_HTTP_CODE равен 0?

При использовании функции cURL в PHP для отправки HTTP-запроса CURLINFO_HTTP_CODEвозвращаемый 0 может иметь следующие причины:

  1. cURL не может подключиться к серверу

Если сервер недоступен, это может быть связано с сбоем сети или недоступностью сервера. В этом случае http-код, возвращаемый cURL, равен 0.

  1. Истекло время запроса

cURL может не выполнить запрос из-за истечения времени ожидания запроса, что может быть связано с длительным временем ответа сервера или ошибкой сетевого соединения. В этом случае http-код, возвращаемый cURL, равен 0.

  1. Сервер вернул код ответа HTTP 0

Если ваш сервер возвращает необычный код состояния ответа (например, 000), для кода состояния ответа cURL можно установить значение 0.

  1. Проблема с настройкой параметров cURL

Если вы используете cURL без правильной настройки необходимых параметров, он может неправильно обрабатывать ссылки. Вы должны убедиться, что URL-адрес правильный, HTTP-запрос настроен правильно и что вы не пропустили какие-либо обязательные параметры, такие как CURLOPT_RETURNTRANSFER, CURLOPT_HEADER, CURLOPT_USERAGENT и т. д.

Выше приведены некоторые причины, по которым curl_getinfo может CURLINFO_HTTP_CODEвозвращать 0, что необходимо проверить в зависимости от конкретной ситуации.

3. Вернуть решение CURLINFO_HTTP_CODE=0

Симпатия : Хост портала
вставьте сюда описание изображения
не найден, не можете найти хост? В проекте это в основном токен, проверенный с помощью Goose Cloud curl.Эта ситуация возникает, когда люди интенсивно его используют, и смена серверов - это нормально.Самой большой причиной должна быть проблема используемого сервера.

4. Связан ли тайм-аут запроса с конфигурацией сервера и использованием ЦП?

Существует определенная связь между временем ожидания запроса, конфигурацией сервера и использованием ЦП.

Когда загрузка ЦП сервера высока, сервер может обрабатывать запросы медленнее, что приводит к тайм-ауту запросов. Это связано с тем, что серверу необходимо использовать логику обработки ЦП при обработке запросов, и если загрузка ЦП сервера слишком высока, это может замедлить обработку запросов, что приведет к тайм-аутам запросов.

Кроме того, неправильная конфигурация сервера также может повлиять на время ожидания запросов. Например, если сервер недостаточно настроен, он может быть не в состоянии обрабатывать большое количество одновременных запросов, что приводит к тайм-ауту запросов. Поэтому, чтобы избежать проблемы тайм-аута запроса, необходимо настроить конфигурацию сервера в соответствии с нагрузкой на сервер и количеством обрабатываемых запросов, чтобы обеспечить стабильную работу сервера и эффективную обработку запросов.

Короче говоря, существует взаимосвязь между временем ожидания запроса, конфигурацией сервера и использованием ЦП.Необходимо разумно настроить конфигурацию сервера, чтобы гарантировать, что сервер может соответствовать требованиям обработки запроса и повысить производительность и стабильность сервера.

вставьте сюда описание изображения
вставьте сюда описание изображения
вставьте сюда описание изображения

5. Вывод

  • Судя по логам, возвращенным Little Goose Cloud, cURL работает всегда;
  • Когда официальный сервер среды не может быть подключен нормально, приобретение тестового сервера является нормальным;
  • Глядя на журналы работы и разные узлы времени, должно быть так, что скорость обработки запросов сервером замедляется из-за пиков трафика, и время ожидания запросов истекает;

3. Alibaba Cloud SMS отправляется централизованно с задержкой

1. Анализ причин отправки централизованных

  1. Ограничение частоты отправки SMS

Служба Alibaba Cloud SMS имеет ограничение частоты отправки.Если пользователь отправляет большое количество SMS-сообщений на один и тот же целевой номер телефона за короткий период времени, служба Alibaba Cloud SMS может кэшировать эти SMS-сообщения и ждать в течение определенного периода времени. перед их отправкой. Это приведет к задержке отправки коротких сообщений и централизованной отправке.

  1. нагрузка на сервер

Если используемый вами сервер сильно загружен, это может привести к задержке отправки SMS-сообщений. Поскольку для отправки SMS обычно требуется сетевое соединение с сервисом Alibaba Cloud SMS, если нагрузка на сервер слишком высока, сетевое соединение также замедлится, что повлияет на скорость отправки SMS.

  1. Сбой сервиса Alibaba Cloud SMS

Если сервис Alibaba Cloud SMS выходит из строя или находится на техническом обслуживании, это может привести к задержке отправки SMS-сообщений, в то же время после восстановления сервиса может быть некоторая централизованная отправка SMS-сообщений.

  1. Проблема с вызовом службы отправки смс

Если вы используете SDK для отправки SMS или интерфейс для вызова службы Alibaba Cloud SMS, возникают проблемы с вызовами, такие как тайм-аут запроса или колебания сети, которые также могут вызывать задержки в отправке SMS-сообщений.

2. Заключение

Согласно стыковке API и журналу работы процессора Xiaogetong, сервер не может выдержать такой большой трафик.

Обновим сервер!


@утечка время иногда

Supongo que te gusta

Origin blog.csdn.net/weixin_41290949/article/details/130980664
Recomendado
Clasificación