Я использую 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>
Когда я нажимаю на эту ссылку, она работает нормально
Предположительно, прямая ссылка работает, потому что все заголовки, необходимые для запроса, были отправлены.
Я считаю отсутствие 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);
Других решений пока нет …