protected function Request($Method, $Request, $Body = null, array $Headers = array(), array $SuccessHeaders = array(200, 301, 302)) { try { $URL = $this->Endpoint; if (is_array($Request)) { foreach ($Request as $Key => $Value) { if (is_int($Key)) { $URL .= "/{$Value}"; } else { $URL .= "/{$Key}/{$Value}"; } } } else { $URL .= '/' . $Request; } if (!empty($this->DefaultGetParameters)) { $URL .= '?' . http_build_query($this->DefaultGetParameters); } $Headers = array_merge($this->DefaultHeaders, $Headers); $Response = Unirest\Request::send($Method, $URL, $Body, $Headers); if (in_array($Response->code, $SuccessHeaders)) { return array('Code' => $Response->code, 'Headers' => $Response->headers, 'Body' => $Response->raw_body, 'Json' => json_decode($Response->raw_body, true)); } $this->Warning("Response code {$Response->code}. Request to {$URL}"); } catch (Exception $Exception) { $this->Warning(get_class($Exception) . ' thrown (' . $Exception->GetMessage() . ')'); } return false; }