public function send(Request $r) { try { Unirest::timeout($this->timeout); $http = Unirest::{$r->method}($r->url, $r->headers, $r->body); $response = new Response((string) $http->raw_body); $response->statusCode = (string) $http->code; $response->json = json_decode((string) $response, true); } catch (\Exception $e) { $response = new Response($e->getMessage()); $response->statusCode = 500; } $this->logger->logHttpCommunication($r, $response); return $response; }
/** * Checks if the daemon is running. * * @param string $ip * @param int $port * @param int $timeout * @return bool */ public function avaliable($ip, $port = 5656, $timeout = 3) { Unirest\Request::timeout($timeout); try { Unirest\Request::get("https://" . $ip . ":" . $port); return true; } catch (\Exception $e) { return false; } }
/** * Gets the status of any specified server given an IP address. * * @return bool Returns an true if server is on, false if off or invalid data was recieved. */ public function online() { if (!$this->server || !$this->node) { return false; } try { Unirest\Request::timeout(1); $request = Unirest\Request::get("https://" . $this->node->fqdn . ":" . $this->node->daemon_listen . "/server", array('X-Access-Token' => $this->node->daemon_secret, 'X-Access-Server' => $this->server->hash)); /* * Valid Data was Returned */ if (!isset($request->body->status) || $request->body->status == 0) { return false; } $this->query_data = $request->body; return true; } catch (\Exception $e) { return false; } }
<?php /* * Include composer and configuration files */ require_once BASE_DIR . 'vendor/autoload.php'; \Unirest\Request::verifyPeer(false); \Unirest\Request::timeout(5); /* * Include required files */ require_once SRC_DIR . 'core/components/authentication.php'; require_once SRC_DIR . 'core/components/errorhandler.php'; require_once SRC_DIR . 'core/components/functions.php'; require_once SRC_DIR . 'core/components/daemon.php'; require_once SRC_DIR . 'core/components/page.php'; require_once SRC_DIR . 'core/components/url.php'; require_once SRC_DIR . 'core/config/configinterface.php'; require_once SRC_DIR . 'core/config/jsonconfig.php'; require_once SRC_DIR . 'core/config/databaseconfig.php'; require_once SRC_DIR . 'core/config/inmemdatabaseconfig.php'; require_once SRC_DIR . 'core/config.php'; require_once SRC_DIR . 'core/databasemanager.php'; require_once SRC_DIR . 'core/authentication.php'; require_once SRC_DIR . 'core/email.php'; require_once SRC_DIR . 'core/files.php'; require_once SRC_DIR . 'core/user.php'; require_once SRC_DIR . 'core/language.php'; require_once SRC_DIR . 'core/log.php'; require_once SRC_DIR . 'core/permissions.php'; require_once SRC_DIR . 'core/server.php';
public function getItems($options) { $headers = array('Cookie' => $this->webCookies, 'Timeout' => Unirest\Request::timeout(5)); $response = Unirest\Request::get('https://steamcommunity.com/trade/' . $options['tradeId'] . '/receipt/', $headers); if ($response->code != 200) { die('Error get items. Server response code: ' . $response->code); } $body = $response->body; preg_match('/(var oItem;[\\s\\S]*)<\\/script>/', $body, $matches); if (!$matches) { die('Error get items: no session'); } $temp = str_replace(array("\r", "\n"), "", $matches[1]); $items = array(); preg_match_all('/oItem = {(.*?)};/', $temp, $matches); foreach ($matches[0] as $key => $value) { $value = rtrim(str_replace('oItem = ', '', $value), ';'); $items[] = json_decode($value, 1); } return $items; }
/** * @expectedException \Unirest\Exception */ public function testTimeoutFail() { Request::timeout(1); Request::get('http://mockbin.com/delay/1000'); Request::timeout(null); // Cleaning timeout for the other tests }