Простой запрос GET с PHP cURL для отправки текстового сообщения SMS - PullRequest
4 голосов
/ 15 ноября 2010

Я создаю быстрое веб-приложение, которое должно отправлять php-сообщения из кода php. cURL, по-видимому, является инструментом для работы, но мне трудно понять его достаточно, чтобы заставить его работать.

Документация по API, с которой я имею дело, здесь . В частности, я хочу использовать простое смс-уведомление на основе GET, задокументированное здесь . Последний ресурс утверждает, что GET API это просто:

http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber={PHONENUMBER}&Message={MESSAGE}&LicenseKey={LICENSEKEY}

И действительно, если я наберу следующий URL в браузере, я получу ожидаемые результаты:

http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=15362364325&Message=mymessage&LicenseKey=2134234882347139482314987123487

Я сейчас пытаюсь создать такой же эффект в php. Вот моя попытка:

<html>
<body>
<?php
$num = '13634859126';
$message = 'some swanky test message';

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=".urlencode($num)."&Message=".urlencode($message)."&LicenseKey=2345987342583745349872");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
</body>
</html>

Мои другие PHP-страницы работают нормально, поэтому я знаю, что php и apache настроены правильно. Но когда я указываю свой браузер на вышеуказанную страницу, я не получаю сообщения на своем телефоне. Кто-нибудь может показать мне, что я делаю не так?

Примечание: все числа фальшивые ... как вы, возможно, подозревали.

Ответы [ 4 ]

10 голосов
/ 15 ноября 2010

Тебе действительно нужен CURL?Вы просто используете PHP file_get_contents($url), который выполнит запрос GET и вернет значение ответа.

1 голос
/ 16 ноября 2010

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

$result=curl_exec($ch);
$curlerrno = curl_errno($ch);
curl_close($ch);
print $curlerrno;

Список кодов ошибок: libcurl-errors

Советую также использовать настройки тайм-аута cURL:

curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
curl_setopt($ch,CURLOPT_TIMEOUT,5);
0 голосов
/ 28 января 2018

Просто замените его
PhoneNumber = $ num

curl_setopt ($ ch, CURLOPT_URL, "http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=".urlencode($num)."&Message=".urlencode($message)."&LicenseKey=2345987342583745349872");

0 голосов
/ 15 ноября 2010

Если вы правильно формируете URL-адрес и, как говорится в одном комментарии, проверьте его вручную в браузере. Я не уверен, куда направляются ваши данные, когда он возвращается, поэтому попробуйте

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // tell the return not to go to the browser

     $output = curl_exec($ch); // point the data to a variable

     print "<br />"; // output the variable
     print $output;
     print "<br />";

Другие вещи, которые можно попробовать

     curl_setopt($ch, CURLOPT_INTERFACE, "93.221.161.69"); // telling the remote system where to send the data back
     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); // pretend you are IE/Mozilla in case the remote server expects it
     curl_setopt($ch, CURLOPT_POST, 1); // setting as a post
...