5.1提前放价,3年企业版2399元,立省600元!查看活动
当前位置:论坛首页 > Linux面板 > 求助

【已回应】启用、停用网站API接口调用出错

发表在 Linux面板2020-2-12 15:27 [复制链接] 1 1774

如题,调用面板API接口启用网站(/site?action=SiteStart)、停用网站(/site?action=SiteStop)发生异常而中断。在宝塔面板后台操作启用/停用网站是正常的。但是通过API调用启用/停用网站就不行。创建网站(/site?action=AddSite)、删除网站(/site?action=DeleteSite)没有问题。

我100%保证API密钥和IP白名单的设置是没有问题的。已经尝试过重启宝塔面板。


错误界面如下:
屏幕截图(1).png


附代码:


  1. public function stopWeb(){
  2.                 $webname = $_POST['webname'];
  3.                 $id = $_POST['id'];
  4.                
  5.                 $url = $this->BT_PANEL.'/site?action=SiteStop;
  6.                 //准备POST数据
  7.                 $p_data = $this->GetKeyData();                //取签名
  8.                 $p_data['id'] = $id;
  9.                 $p_data['webname'] = $webname;
  10.                
  11.                 //请求面板接口
  12.                 $stopResult = $this->HttpPostCookie($url,$p_data);
  13.                 echo $stopResult;
  14.         }
复制代码
  1. private function HttpPostCookie($url, $data,$timeout = 60)
  2.     {
  3.             //定义cookie保存位置
  4.         $cookie_file='./'.md5($this->BT_PANEL).'.cookie';
  5.         if(!file_exists($cookie_file)){
  6.             $fp = fopen($cookie_file,'w+');
  7.             fclose($fp);
  8.         }
  9.                
  10.         $ch = curl_init();
  11.         curl_setopt($ch, CURLOPT_URL, $url);
  12.         curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  13.         curl_setopt($ch, CURLOPT_POST, 1);
  14.         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  15.         curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
  16.         curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
  17.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18.         curl_setopt($ch, CURLOPT_HEADER, 0);
  19.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  20.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  21.         $output = curl_exec($ch);
  22.         curl_close($ch);
  23.         return $output;
  24.     }
复制代码
  1. /**
  2.      * 构造带有签名的关联数组
  3.      */
  4.           private function GetKeyData(){
  5.                   $now_time = time();
  6.             $p_data = array(
  7.                         'request_token'        =>        md5($now_time.''.md5($this->BT_KEY)),
  8.                         'request_time'        =>        $now_time
  9.                 );
  10.             return $p_data;   
  11.     }
复制代码




使用道具 举报 只看该作者 回复
发表于 2020-2-12 15:38:34 | 显示全部楼层
开发群里直接at阿良
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表