private void ManipularRequisicao() { var httpListener = new HttpListener(); foreach (var prefixo in _prefixos) { httpListener.Prefixes.Add(prefixo); } httpListener.Start(); var contexto = httpListener.GetContext(); var request = contexto.Request; var response = contexto.Response; var path = request.Url.PathAndQuery; if (Utilidades.IsArquivo(path)) { var manipulador = new ManipuladorRequisicaoArquivo(); manipulador.Manipular(response, path); } else { var manipulador = new ManipuladorRequisicaoController(_container); manipulador.Manipular(response, path); } httpListener.Stop(); }
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(); }