public function request($path, $query_array = array(), $options = array())
 {
     $parse_url = parse_url($path);
     $request_url = '';
     if (!isset($parse_url['scheme']) || empty($parse_url['scheme'])) {
         $request_url .= API_DOMAIN;
     }
     $request_url .= $path;
     if ($query_array !== false) {
         $query_array = isset($options['authentication']) && $options['authentication'] == false ? $query_array : LoginRadiusSDK\LoginRadius::authentication($query_array);
         if (strpos($request_url, "?") === false) {
             $request_url .= "?";
         } else {
             $request_url .= "&";
         }
         $request_url .= LoginRadiusSDK\LoginRadius::queryBuild($query_array);
     }
     if (in_array('curl', get_loaded_extensions())) {
         $response = $this->curlApiMethod($request_url, $options);
     } elseif (ini_get('allow_url_fopen')) {
         $response = $this->fsockopenApiMethod($request_url, $options);
     }
     $getBlockDir = Mage::getBlockSingleton('activation/activation')->getBlockDir();
     if (Mage::getBlockSingleton($getBlockDir . '/' . $getBlockDir)->debugMode() == '1') {
         $status = 'error';
         if (!empty($response)) {
             $result = json_decode($response);
             if (!isset($result->errorCode)) {
                 $status = 'success';
             }
         }
         $logData = array('url' => $request_url, 'method' => strtoupper(isset($options['method']) ? strtolower($options['method']) : 'get'), 'data' => array('GET' => $query_array, 'POST' => isset($options['post_data']) ? $options['post_data'] : array()), 'response' => $response, 'status' => ucfirst($status));
         Mage::dispatchEvent('lr_debug_log_event', array('logdata' => $logData));
     }
     if (!empty($response)) {
         $result = json_decode($response);
         if (isset($result->errorCode) && !empty($result->errorCode)) {
             throw new LoginRadiusSDK\LoginRadiusException($result->message, $result);
         }
     }
     return $response;
 }