php curl返回false----curl调用微信创建自定义菜单返回false
admin
2023-06-14 04:41:50
0

在调用微信公众平台的创建自定义菜单接口来创建自定义菜单时遇到一个大坑,php curl返回false一直无法调试通过,代码如下:

//创建菜单
public function menu_create($data){
$url =" https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$this->get_access_token()}";
echo $url.'----------
';

      return $this->https_request($url,$data);
  }
  //查询菜单

封装的curl请求函数:

/*
模拟发送get 和 post 请求
*/
public function https_request($url,$data=""){
//curl初始化
$ch=curl_init();
//设置传输地址
curl_setopt($ch,CURLOPT_URL,$url);
//以文件流形式返回数据
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//如有数据要发送,选用post方式提交
if($data){
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
//发送请求,返回数据
$request =curl_exec($ch);
$arrTmp =json_decode($request,TRUE);
// $this->count =$this->count + 1;
// echo "

";
// var_dump($arrTmp);
// echo "
";
// echo $this->count.'---------';
//关闭curl
curl_close($ch);
if(is_array($arrTmp)){
return $arrTmp;
}else{
return $request;
}
}

后比对了以前成功调试的代码:

      $url =" https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$this->get_access_token()}";

发现$url中链接字符串前多了一个空格!后来查证:在curl请求的url中包含了空格。注意,是包含了空格,也就是说在url的任何一个位置都不行。如果有则curl返回的结果就是false。然后我使用curl_error($ch)来获取可视获取的结果为string ""也就是空字符串。所以这个就有点儿难判断了。最后发现是url中有了一个空格。
总结:使用curl来请求数据时curl的url地址中的任何地方不能有空格存在!

相关内容

热门资讯

中国驻朝鲜大使馆:跨境赌博举报... 跨境赌博严重危害人民群众合法权益,严重危害经济安全、社会稳定和国家形象。希望广大海外中国公民认清跨境...
最高法发布典型案例,对虐待残害... 为推动家庭保护关口前移,督促监护人履职尽责,今天,最高人民法院发布防范和惩治家庭内部侵害未成年人合法...
新闻1+1丨在轨驻留延长至一年... 神二十三发射圆满成功,航天员乘组顺利进驻“天宫”。此番出征,他们肩负着怎样的新任务?首位香港航天员黎...
漳州杨梅被“封杀”背后 5月24日晚,福建漳州龙海区的问责通报,为一场持续发酵近十天的杨梅危机,写下了一个阶段性的注脚。6个...
洛阳入选!中央财政支持实施城市... 近日,财政部办公厅、住房城乡建设部办公厅联合发布通知,开展2026年度中央财政支持实施城市更新行动。...
日本“狮子”号渔船非法进入中国... 中国海警局新闻发言人姜略表示,5月26日,日本“狮子”号渔船非法进入中国钓鱼岛领海,中国海警舰艇依法...
日专家:日菲加强军事合作旨在牵... 据凤凰卫视报道,菲律宾总统马科斯自5月26日起对日本展开正式访问,日菲两国预计就强化安保合作深入交换...
伊朗伊斯兰革命卫队称击落一架美... 伊朗伊斯兰革命卫队公共关系部门26日发表声明称,革命卫队在波斯湾的伊朗领空击落一架美军MQ-9型“死...
伊朗最高领袖称美国在中东将不再... △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)据伊朗方面5月26日消息,伊朗最高领袖穆杰塔巴·哈梅内伊当...
韩国首尔一高架桥拆除现场发生坍... 据韩联社报道,当地时间5月26日下午2时32分许,韩国首尔市内一座高架桥拆除现场发生坍塌事故,已造成...