如题,调用面板API接口启用网站(/site?action=SiteStart)、停用网站(/site?action=SiteStop)发生异常而中断。在宝塔面板后台操作启用/停用网站是正常的。但是通过API调用启用/停用网站就不行。创建网站(/site?action=AddSite)、删除网站(/site?action=DeleteSite)没有问题。
我100%保证API密钥和IP白名单的设置是没有问题的。已经尝试过重启宝塔面板。
错误界面如下:
附代码:
- public function stopWeb(){
- $webname = $_POST['webname'];
- $id = $_POST['id'];
-
- $url = $this->BT_PANEL.'/site?action=SiteStop;
- //准备POST数据
- $p_data = $this->GetKeyData(); //取签名
- $p_data['id'] = $id;
- $p_data['webname'] = $webname;
-
- //请求面板接口
- $stopResult = $this->HttpPostCookie($url,$p_data);
- echo $stopResult;
- }
复制代码- private function HttpPostCookie($url, $data,$timeout = 60)
- {
- //定义cookie保存位置
- $cookie_file='./'.md5($this->BT_PANEL).'.cookie';
- if(!file_exists($cookie_file)){
- $fp = fopen($cookie_file,'w+');
- fclose($fp);
- }
-
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- $output = curl_exec($ch);
- curl_close($ch);
- return $output;
- }
复制代码- /**
- * 构造带有签名的关联数组
- */
- private function GetKeyData(){
- $now_time = time();
- $p_data = array(
- 'request_token' => md5($now_time.''.md5($this->BT_KEY)),
- 'request_time' => $now_time
- );
- return $p_data;
- }
复制代码
|
|