public function preDispatch()
    {
        $error   = null;
        $request = $this->getRequest();

        if (!$request->isGet() && !$request->isHead()) {
            // read data from the request body.
            $this->_input = json_decode($request->getRawBody());

            if (JSON_ERROR_NONE === json_last_error()) {
                return;
            }

            // Sending invalid JSON will result in a `400 Bad Request` response.
            $this
                ->getResponse()
                ->setHttpResponseCode(400)
                ->setHeader('Content-Type', 'text/plain; charset=utf-8', true)
                ->setBody(json_last_error_msg())
                ->sendResponse();

            exit(400);
        }
    }