diff --git a/flight/net/Request.php b/flight/net/Request.php index 3e8dec3..587475b 100644 --- a/flight/net/Request.php +++ b/flight/net/Request.php @@ -24,7 +24,6 @@ use flight\util\Collection; * ajax - Whether the request is an AJAX request * scheme - The server protocol (http, https) * user_agent - Browser information - * body - Raw data from the request body * type - The content type * length - The content length * query - Query string parameters @@ -74,11 +73,6 @@ class Request { */ public $user_agent; - /** - * @var mixed Raw data from the request body - */ - public $body; - /** * @var string Content type */ @@ -146,13 +140,13 @@ class Request { 'ajax' => self::getVar('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest', 'scheme' => self::getVar('SERVER_PROTOCOL', 'HTTP/1.1'), 'user_agent' => self::getVar('HTTP_USER_AGENT'), - 'body' => self::getBody(), 'type' => self::getVar('CONTENT_TYPE'), 'length' => self::getVar('CONTENT_LENGTH', 0), 'query' => new Collection($_GET), 'data' => new Collection($_POST), 'cookies' => new Collection($_COOKIE), 'files' => new Collection($_FILES), + 'json' => new Collection(), 'secure' => self::getVar('HTTPS', 'off') != 'off', 'accept' => self::getVar('HTTP_ACCEPT'), 'proxy_ip' => self::getProxyIpAddress() @@ -178,6 +172,7 @@ class Request { $this->url = substr($this->url, strlen($this->base)); } + // Default url if (empty($this->url)) { $this->url = '/'; } @@ -189,11 +184,13 @@ class Request { } // Check for JSON input - $json = array(); - if ($this->body != '' && strpos($this->type, 'application/json') === 0) { - $json = json_decode($this->body, true); + if (strpos($this->type, 'application/json') === 0) { + $body = $this->getBody(); + + if ($body != '') { + $this->json->setData(json_decode($body, true)); + } } - $this->json = new Collection($json); } /** @@ -203,7 +200,7 @@ class Request { */ public static function getBody() { - $method = self::getVar('REQUEST_METHOD', 'GET'); + $method = self::getMethod(); if ($method == 'POST' || $method == 'PUT') { return file_get_contents('php://input');