CURLINFO_HTTP_CODE возвращает 0
1. Описание проекта
Xiaogetong — это платформа, предоставляющая онлайн-видеоуслуги, такие как прямая трансляция, запись трансляции и короткое видео. В последнее время распространенные проблемы при стыковке с его API включают:
-
Проблема с авторизацией: перед использованием API Gooselink требуется проверка авторизации, чтобы обеспечить законность доступа к API. Если информация авторизации неверна или недействительна, запрос API завершится ошибкой.
-
Ошибка параметра: при вызове API Gooselink необходимо передать соответствующие параметры. Если параметры неверны или отсутствуют обязательные параметры, запрос API завершится ошибкой.
-
Проблемы с сетевым подключением: запросы API могут завершаться сбоем из-за проблем с сетью.
-
Проблема с ограничением частоты: Goosecom имеет определенное ограничение на частоту запросов API.Если вы часто вызываете API, Goosecom может ограничить вызовы API или закрыть права доступа к API.
-
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 может иметь следующие причины:
- cURL не может подключиться к серверу
Если сервер недоступен, это может быть связано с сбоем сети или недоступностью сервера. В этом случае http-код, возвращаемый cURL, равен 0.
- Истекло время запроса
cURL может не выполнить запрос из-за истечения времени ожидания запроса, что может быть связано с длительным временем ответа сервера или ошибкой сетевого соединения. В этом случае http-код, возвращаемый cURL, равен 0.
- Сервер вернул код ответа HTTP 0
Если ваш сервер возвращает необычный код состояния ответа (например, 000), для кода состояния ответа cURL можно установить значение 0.
- Проблема с настройкой параметров 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. Анализ причин отправки централизованных
- Ограничение частоты отправки SMS
Служба Alibaba Cloud SMS имеет ограничение частоты отправки.Если пользователь отправляет большое количество SMS-сообщений на один и тот же целевой номер телефона за короткий период времени, служба Alibaba Cloud SMS может кэшировать эти SMS-сообщения и ждать в течение определенного периода времени. перед их отправкой. Это приведет к задержке отправки коротких сообщений и централизованной отправке.
- нагрузка на сервер
Если используемый вами сервер сильно загружен, это может привести к задержке отправки SMS-сообщений. Поскольку для отправки SMS обычно требуется сетевое соединение с сервисом Alibaba Cloud SMS, если нагрузка на сервер слишком высока, сетевое соединение также замедлится, что повлияет на скорость отправки SMS.
- Сбой сервиса Alibaba Cloud SMS
Если сервис Alibaba Cloud SMS выходит из строя или находится на техническом обслуживании, это может привести к задержке отправки SMS-сообщений, в то же время после восстановления сервиса может быть некоторая централизованная отправка SMS-сообщений.
- Проблема с вызовом службы отправки смс
Если вы используете SDK для отправки SMS или интерфейс для вызова службы Alibaba Cloud SMS, возникают проблемы с вызовами, такие как тайм-аут запроса или колебания сети, которые также могут вызывать задержки в отправке SMS-сообщений.
2. Заключение
Согласно стыковке API и журналу работы процессора Xiaogetong, сервер не может выдержать такой большой трафик.
Обновим сервер!
@утечка время иногда