curl — неверный запрос при отправке SMS из переполнения стека

Я использую API indiasms с curl для отправки смс

 <?php

$url = "http://12.23.54.18/api/smsapi.aspx?username=myusername&password=mypassword&to=7897015426&from=DEMOAB&message=Your message content.";
$curl = curl_init($url);
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_USERAGENT => 'Codular Sample cURL Request'
));

$resp = curl_exec($curl);
curl_close($curl);

?>

Всякий раз, когда я запускаю этот скрипт, я получаю

Неверный запрос

Ошибка HTTP 400. Запрос плохо сформирован.

Что я делаю не так. ??

Обновление Но когда я бегу без скручивания, он работает нормально

<a href="http://12.23.54.18/api/smsapi.aspx?username=myusername&password=mypassword&to=7897015426&from=DEMOAB&message=Your message content.">Send Message</a>

Когда я нажимаю на эту ссылку, она работает нормально

2

Решение

Предположительно, прямая ссылка работает, потому что все заголовки, необходимые для запроса, были отправлены.

Я считаю отсутствие User-Agent: заголовок или Connection: заголовок

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

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://12.23.54.18/api/smsapi.aspx?username=myusername&password=mypassword&to=7897015426&from=DEMOAB&message=Your message content.');
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

echo $httpcode;

Если не работает, попробуйте добавить, Connection: заголовок:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Connection: close'
));

Если не работает, попробуйте добавить свое сообщение перед отправкой:

$msg = rawurlencode('Your message content.');
curl_setopt($ch, CURLOPT_URL, 'http://12.23.54.18/api/smsapi.aspx?username=myusername&password=mypassword&to=7897015426&from=DEMOAB&message=' . $msg);
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]