Url只有在php中使用curl执行参数:获取错误

时间:2016-04-08 05:01:34

标签: php api curl

我发送短信通过php curl发送api。

<?php
$number='XXXXXX';
$message="Hello world";
$url='http://XXx/api/sendmsg.php?user=XXXXX&pass=XXX&sender=SPOTMT&phone='.$number.'&text='.$message.'&priority=ndnd&stype=normal';
echo $url;
echo httpGet($url);
function httpGet($url)
{
    $ch = curl_init();  

    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false); 

    $output=curl_exec($ch);

    curl_close($ch);
    return $output;
}

我将从api服务收到错误消息,但是当我直接在浏览器上复制此echo $url的网址时,它将正常工作。 但是当使用curl时,我将收到错误消息。

这是

  

发件人ID不存在或待处理或路由无效!

curl它没有用。

2 个答案:

答案 0 :(得分:1)

将用户代理添加到curl请求中,因为后端可能会过滤具有默认curl用户代理的请求。

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

答案 1 :(得分:0)

使用urlencode()对邮件进行编码,然后再将其提交给CURL