CURL 为单个请求发送两次请求

CURL Sends Requests Twice For Single Request

我正在使用以下代码发送 CURL 请求以发送短信。但是短信被发送了两次。

    $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);

我尝试评论一些解决问题的行,但给出的输出如下:

只发送一次 CURL 请求的正确方法是什么?

您通常会使用不带参数的 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);
?>

试试这个:

$ch = curl_init();

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

curl_exec($ch);

不要将 URL 作为参数传递给 init 函数。

我不知道为什么这个函数被调用了两次,但我从来没有将 URL 作为参数传递,并且总是以这种方式工作得很好。