最近在研究php项目,构想出做一个发短信的平台。这和在java web项目中用到的短信接口一样。所以需要用到php的Curl。
废话不说,直接贴代码:
<?php
$arr = array ("mobilePhoneNumber"=>"电话号码","content"=>"发送内容");
$data = json_encode($arr);
$curl = curl_init('https://api.bmob.cn/1/requestSms');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//设置头部header的内容
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"X-Bmob-Application-Id: appid",
"X-Bmob-REST-API-Key: apikey"
)
);
$ret = curl_exec($curl);
$httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);
echo $httpCode;
echo curl_error($curl);
curl_close($curl);
?>
但运行之后,发现返回的状态码为“0”,请求根本没有发送到服务器,输出错误内容发现“SSL certificate problem: self signed certificate in certificate chain”错误。最后通过加入下面两句修改了错误:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false);
整一个代码为以下:
<?php
$arr = array ("mobilePhoneNumber"=>"电话号码","content"=>"发送的内容");
$data = json_encode($arr);
$curl = curl_init('https://api.bmob.cn/1/requestSms');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"X-Bmob-Application-Id: appid",
"X-Bmob-REST-API-Key: apikey"
)
);
$ret = curl_exec($curl);
$httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);
echo $httpCode;
echo curl_error($curl);
curl_close($curl);
?>
本文介绍了一个使用PHP的Curl库实现短信发送功能的例子。通过JSON编码传递手机号与短信内容,并设置HTTP头信息来完成与服务器的交互。文章还解决了SSL证书验证导致的请求失败问题。
2277

被折叠的 条评论
为什么被折叠?



