2015-08-06 3 views
1

Я отправил запрос одному из поставщиков шлюзов sms с API HTTP.PHP CURL не работает, но работает при копировании

Но я получаю 403 Запретную ошибку. Forbidden You don't have permission to access API/WebSMS/Http/v1.0a/index.php on this server.

Мой код: -

$url="http://www.somesite.in/API/WebSMS/Http/v1.0a/index.php?username=".$GLOBALS['smsGatewayUsername']."&password=".$GLOBALS['smsGatewayPassword']."&sender=".$GLOBALS['smsGatewaySenderId']."&to=".$mobileNumber."&message=".$message."&reqid=1&format=text&route_id=".$GLOBALS['smsGatewayRouteId']."&sendondate=".$GLOBALS['dateCustom']."&msgtype=unicode"; 
$curl = curl_init(); 
curl_setopt ($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0"); 
curl_exec ($curl); 
curl_close ($curl); 

Но $url работает, когда полицейский вставили в браузере.

Я позволил extension=php_curl.dll внутри XAMPP php.ini

+2

Может быть, сеанс был однажды создан с помощью браузера, поэтому его работа. Очистите файлы cookie и сеанс этого сайта в браузере и повторите попытку с тем же URL-адресом. И они, должно быть, внедрили некоторый метод аутентификации, вам нужно передать это в curl. – Jigar

+0

Это не ошибка php/curl. Сервер просто говорит, что вам не разрешено отправлять этот запрос. Вы повторили «$ url» и проверили это в браузере? – redimp

+0

Попробуйте ввести urlencode свой '$ url' перед отправкой с помощью curl. – sotoz

ответ

0

Я сделал это и получил код для работы. Вместо того, чтобы передавать параметр в качестве URL-адреса, передал его как опцию postfield в CURL.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.somesite.in/API/index.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=".$GLOBALS['smsGatewayUsername']."&password=".$GLOBALS['smsGatewayPassword']."&sender=".$GLOBALS['smsGatewaySenderId']."&to=".$mobileNumber."&message=".$message."&reqid=1&format=text&route_id=".$GLOBALS['smsGatewayRouteId']."&sendondate=".$GLOBALS['dateCustom']."&msgtype=unicode"); 
curl_exec($ch); 
curl_close($ch); 
Смежные вопросы