У меня есть класс Utility, который должен вызывать удаленный URL-адрес cPanel для создания адреса пересылки электронной почты через cURL. Это работает отлично, если я использую обычный curl_exec, но сбой, если я попытаюсь сделать его неблокирующим через curl_multi_exec. Все, что мне нужно сделать, это отправить запрос и перейти дальше, мне не нужно знать результат - так что это действительно не -blocking требованиеcurl_multi_exec не вызывает удаленную функцию
Вот код, который работает
$url = "https://mycpanel.com:2083/execute/Email/add_forwarder?domain=mydomain.com&email=email_fwd_146&fwdopt=pipe&pipefwd=php/piper.php&";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic " . base64_encode("user:pwd")));
$response = curl_exec($ch);
CakeLog::write('error', print_r($response, true));
curl_close($ch);
ответ я на приведенный выше код ниже (хотя я действительно не забочусь об ответе)
{
"messages":null,
"errors":null,
"status":1,
"metadata":{
"transformed":1
},
"data":[
{
"email":"[email protected]",
"domain":"mydomain.com",
"forward":"|/home/myconsole/php/piper.php"
}]
}
Здесь код не работает
$url = "https://mycpanel.com:2083/execute/Email/add_forwarder?domain=mydomain.com&email=email_fwd_146&fwdopt=pipe&pipefwd=php/piper.php&";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic " . base64_encode("user:pwd")));
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch);
curl_multi_exec($mh, $active);
Этот вызов кажется, никогда не достигнет сервера или даже выполнить. Любое понимание будет оценено по достоинству.
Вы не показываете, как вы на самом деле опросаваете ручку multi curl для получения результатов. – mario
Я не знаю, что вы видите выше, это весь мой код – ChicagoSky