예제 #1
0
 public static function callRazberry($_url, $_serverId = 1)
 {
     if (self::$_curl == null) {
         self::$_curl = curl_init();
     }
     if (self::$_listZwaveServer == null) {
         self::listServerZway();
     }
     $url = 'http://' . self::$_listZwaveServer[$_serverId]['addr'] . ':' . self::$_listZwaveServer[$_serverId]['port'] . $_url;
     $ch = self::$_curl;
     curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true));
     $result = curl_exec($ch);
     if (curl_errno($ch)) {
         $curl_error = curl_error($ch);
         throw new Exception(__('Echec de la requete http : ', __FILE__) . $url . ' Curl error : ' . $curl_error, 404);
     }
     if (strpos($result, 'Error 500: Server Error') === 0 || strpos($result, 'Error 500: Internal Server Error') === 0) {
         if (strpos($result, 'Code took too long to return result') === false) {
             throw new Exception('Echec de la commande : ' . $_url . '. Erreur : ' . $result, 500);
         }
     }
     if (is_json($result)) {
         return json_decode($result, true);
     } else {
         return $result;
     }
 }