private function extractParameters(SystemEnvironmentInterface $environment)
    {
        $server = $this->environment->getRequestHelper()->getServerParams();
        $params = array();
        parse_str(isset($server['QUERY_STRING']) ? $server['QUERY_STRING'] : '', $params);
        $body = $this->environment->getStdInput();
        $content_type = isset($server['CONTENT_TYPE']) ? $server['CONTENT_TYPE'] : '';
        if (strchr($content_type, ';') !== false) {
            list($content_type) = preg_split('/;/', $content_type, 2);
        }
        switch ($content_type) {
            case "application/json":
                $params = array_merge($params, $this->parseApplicationJson($body));
                break;

            case "application/x-www-form-urlencoded":
                $params = array_merge($params, $this->parseApplicationFormUrlEncoded($body));
                break;

            case "multipart/form-data":
                $params = array_merge($params, $this->parseMultipartFormdata($body));
                break;
        }
        $environment->getRequestHelper()->fillWithData($params);
    }