2014-11-12 4 views
2

Я использую API indiasms с завитком отправить смсBad Request при отправке SMS из PHP

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

?> 

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

Bad Request

HTTP Error 400 Запрос плохо сформирован.

Что я делаю неправильно. ??

Update Но когда я бег без завитка он работает отлично

<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> 

Когда я щелкаю по ссылке он работает нормально

+0

Вы кодируете сообщение URL? Что говорит документация по API? –

+0

Коди, ваш веб-сервис требует метода POST? –

+0

@GuilhermeNascimento no – Cody

ответ

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); 
+0

все еще не wroking – Cody

+0

@ Кодирование этого WebService требует AUTH cookie/session или использовать только «метод GET»? См. Я отредактировал ответ. –

+0

Теперь его работаю Спасибо :) – Cody