*/ private static $retriableErrorCodes = [ CURLE_COULDNT_RESOLVE_HOST, CURLE_COULDNT_CONNECT, CURLE_HTTP_NOT_FOUND, CURLE_READ_ERROR, CURLE_OPERATION_TIMEOUTED, CURLE_HTTP_POST_ERROR, CURLE_SSL_CONNECT_ERROR, ]; /** * Executes a CURL request with optional retries and exception on failure * * @param resource|CurlHandle $ch curl handler * @param int $retries * @param bool $closeAfterDone * @return bool|string @see curl_exec */ public static function execute($ch, int $retries = 5, bool $closeAfterDone = true) { while ($retries--) { $curlResponse = curl_exec($ch); if ($curlResponse === false) { $curlErrno = curl_errno($ch); if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) { $curlError = curl_error($ch); if ($closeAfterDone) { curl_close($ch); } throw new \RuntimeException(sprintf('Curl error (code %d): %s', $curlErrno, $curlError)); } continue; } if ($closeAfterDone) { curl_close($ch); } return $curlResponse; } return false; } } __halt_compiler();----SIGNATURE:----u+c5uQg06MZA1wRGVxbupt/1Palc4/Ux5Ug8b+XU7cPAcX9WGl5CM6UbiYsR+3M6i5kp5Zw3ZZ/0aHKo8RtV1kdei7DeyKsNf+xNU92n30KtuG1UrfQPb4w3xlBV6HJVHYXJaB8FjD/ksd0zXTi6bW7uDwJUh3Kr1eVnmLMPY8zPK0FEae+xrb8sfzMNpzNEMrC6mOPvrMj8UGDGURTL71Bw0kyvqQUCl+238zRVNIQECXSd6rVEiG2Zru81LJmUppLEt/8IyM6Ds3zZz7sb7cdnfSR53Z6qODS05RKb6V/diGLU9NYMtGTgx6IUabEIp+XzMCqYexSXWPJKm2hmh7uxu1Q3z10Kkrp1d4xcKwA2MOtspUwMp7iKy1IVLIdZjgE+cBpIh0ul/DiZCeyuncAg5Ll/1oscGOBeNk4IqHcMUYz9rB3xLWoiCPcZlJKUxvCf5MLx7upT2sGqEdemx6LhmAbmysMHwFIeTQtwPHgHGGQ9rha4EnsXCZxehCnzBHVzqLaxjx/vRU15VSHd8lW0PrFvSijnwJ5Ck0xCoW6uW5tvzQ2N+pFVwONCtSj7Z90pL6wq2EdYr4UKRP8yIuJ1IQcr0bDnyTU9or76QGd9XYEk1Np1NmzeHXTT1QJXxzEik9uedDHvNLHUSdFMraObHqJu5nf+cAEYuAOkAkU=----ATTACHMENT:----NjE5NDIyMzg4NDA5MTk2OSA1NzA3NDY4MDE2MTA2NDI5IDU5Mzc5NzgyNDkwNDY2OTM=