CURL отправляет запросы дважды за один запрос - PullRequest
0 голосов
/ 09 января 2019

Я использую следующий код для отправки запроса CURL на отправку SMS. Но SMS отправляется дважды.

    $message = urlencode($message);
    $smsurl = "http://$url/sendmessage.php?user=matkaon&password=$password&mobile=$mobile&message=$message&sender=$sender&type=3";
    $ch = curl_init($smsurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $sentsms = curl_exec($ch);
    curl_close($ch);

Я попытался прокомментировать некоторые строки, которые решили проблему, но дают вывод, как показано ниже: enter image description here

Как правильно отправить запрос CURL только один раз?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Попробуйте это:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $smsurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_exec($ch);

Не передавайте URL как аргумент функции init.

Я не знаю, почему функция вызывается дважды, но я никогда не передаю URL в качестве аргумента и всегда прекрасно работаю таким образом.

0 голосов
/ 09 января 2019

Обычно вы используете curl_init() без параметров, а затем передаете URL в curl_exec.

Модифицированный пример 1 из curl_exec docs :

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $smsurl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>
...