示例#1
0
        private void ManipularRequisicao()
        {
            var httpListener = new HttpListener();

            foreach (var prefixo in _prefixos)
            {
                httpListener.Prefixes.Add(prefixo);
            }

            httpListener.Start();

            var contexto   = httpListener.GetContext();
            var requisicao = contexto.Request;
            var resposta   = contexto.Response;

            var path = requisicao.Url.PathAndQuery;

            if (Utilidades.EhArquivo(path))
            {
                var manipulador = new ManipuladorRequisicaoArquivo();
                manipulador.Manipular(resposta, path);
            }
            else
            {
                var manipulador = new ManipuladorRequisicaoController(_container);
                manipulador.Manipular(resposta, path);
            }

            httpListener.Stop();
        }
示例#2
0
        private void ManipularRequisicao()
        {
            //httpLisener: Classe que vai ficar ouvindo as requisições http.
            //prefixo: começo das urls que ele vai ouvir.
            var httpListener = new HttpListener();

            //Precisamos passar os prefixmo para a class httplistener
            foreach (string prefixo in this._prefixos)
            {
                httpListener.Prefixes.Add(prefixo);
            }

            //Start: iniciando o servidor
            httpListener.Start();

            //Precisamos obter o contexto:
            //quando nossa aplicação chega nesse ponto ela trava, fica esperando uma requisção.
            var contexto = httpListener.GetContext();

            //preciso de dois objetos. um de resposta e um de requisição.
            //objecto que representa nossa requisição
            var requisicao = contexto.Request;

            //ojecto que representa nossa resposta
            var resposta = contexto.Response;

            //Nao podemos devolder um texto puro, isso nao vai rolar. Tenho que transformar minha string em um fluxo de bytes.
            //O objexto Stream e um fluxo de bytes:
            //Conteudo a ser devolvido.
            var respostaConteudo = "hello World";

            //Transformando minha string em um array de bytes. Agora eu posso mandar esse array de bytes para nosso cliente para nossa rede.
            var respostaConteudoBytes = Encoding.UTF8.GetBytes(respostaConteudo);

            //AbsolutePath: indica qual diretorio a applicação esta tentando acessar
            var path = requisicao.Url.PathAndQuery;

            if (Utilidades.EhArquivo(path))
            {
                var manipulardor = new ManipuladorRequisicaoArquivo();

                manipulardor.Manipular(resposta, path);
            }
            else
            {
                var manipuladorController = new ManipuladorRequisicaoController(this._container);
                manipuladorController.Manipular(resposta, path);
            }

            httpListener.Stop();
        }
        private void ManipularRequisicao()
        {
            // Escutando requisições http
            var httpListener = new HttpListener();

            foreach (var prefixo in _prefixos)
            {
                // Adicionando caminhos que seram escutados
                httpListener.Prefixes.Add(prefixo);
            }
            httpListener.Start();

            // Pegando o contexto, e esperando a resposta
            var contexto   = httpListener.GetContext();
            var requisicao = contexto.Request;
            var resposta   = contexto.Response;

            // Pegando a Url da requisição
            //var path = requisicao.Url.AbsolutePath;
            var path = requisicao.Url.PathAndQuery;

            #region Retornando arquivo statico
            if (Utilidades.VerificarChamadaDeArquivo(path))
            {
                var manipulador = new ManipuladorRequisicaoArquivo();
                manipulador.Manipular(resposta, path);
            }
            #endregion

            #region Trabalhando com Controllers
            else
            {
                var manipulador = new ManipuladorRequisicaoController(_container);
                manipulador.Manipular(resposta, path);
            }
            #endregion

            httpListener.Stop();
        }