PHP CURL不起作用,但在复制粘贴时起作用

时间:2015-08-06 13:28:36

标签: php codeigniter curl

我正在使用HTTP API向其中一个短信网关提供商发送请求。

但我得到403 Forbidden错误。     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在将警察粘贴到浏览器中时有效。

我在xampp php.ini

中启用了extension=php_curl.dll

1 个答案:

答案 0 :(得分:0)

我这样做了并且让代码工作。不是将参数作为URL传递,而是将其作为CURL中的postfield选项传递。

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