public function handle($URI = null)
    {
        if ($URI === null) {
            $URI = 'php://input';
        }

        try {
            $request    = $this->XRLDecoder->decodeRequest($URI);
            $procedure  = $request->getProcedure();
            // Necessary to keep references.
            $params     = $request->getParams();

            $result     = $this->call($procedure, $params);
            $response   = $this->XRLEncoder->encodeResponse($result);
        } catch (\Exception $result) {
            $response   = $this->XRLEncoder->encodeError($result);
        }

        return new \fpoirotte\XRL\Response($response);
    }