PHP скрипт обращается к API почтовых сервисов через curl, время ответа очень долгое, хотя сам ответ и не нужен. Главное отправить данные.
Из за этого сайт работает медленно, работа curl занимает долгое время.
Как не ждать ответа curl?
//Отправка запроса
private function sendRequest($path, $method = "GET", $data = array(), $useToken = true) {
$url = $this -> apiUrl . "/" . $path;
$method = strtoupper($method);
$curl = curl_init();
if ($useToken && !empty($this -> token)) {
$headers = array("Authorization: Bearer ".$this -> token);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
}
switch ($method) {
case "POST":
curl_setopt($curl, CURLOPT_POST, count($data));
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
break;
case "DELETE":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
break;
default:
if (!empty($data)) {
$url .= "?" . http_build_query($data);
}
break;
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$headerCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$responseBody = substr($response, $header_size);
curl_close($curl);
if ($headerCode == 401 && $this -> refreshToken == 0) {
$this -> refreshToken += 1;
$this -> getToken();
$return = $this -> sendRequest($path, $method, $data);
} else {
$return = new stdClass();
$return -> data = json_decode($responseBody);
$return -> http_code = $headerCode;
}
return $return;
}