示例#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.AbsolutePath;

            if (Utilidades.EhArquivo(path))
            {
                var assembly     = Assembly.GetExecutingAssembly();
                var nomeResourve = Utilidades.ConverterPathParaNomeAssembly(path);

                var resourceStream = assembly.GetManifestResourceStream(nomeResourve);

                if (resourceStream == null)
                {
                    resposta.StatusCode = 404;
                    resposta.OutputStream.Close();
                }
                else
                {
                    var bytesResource = new byte[resourceStream.Length];

                    resourceStream.Read(bytesResource, 0, (int)resourceStream.Length);

                    resposta.ContentType     = Utilidades.BoterTipoDeConteudo(path);
                    resposta.StatusCode      = 200;
                    resposta.ContentLength64 = resourceStream.Length;

                    resposta.OutputStream.Write(bytesResource, 0, bytesResource.Length);

                    resposta.OutputStream.Close();
                }
            }
            else if (path == "/Cambio/MXN")
            {
                var controller     = new CambioController();
                var paginaConteudo = controller.MXN();

                var bufferArquivo = Encoding.UTF8.GetBytes(paginaConteudo);

                resposta.StatusCode      = 200;
                resposta.ContentType     = "text/html; charset=utf-8";
                resposta.ContentLength64 = bufferArquivo.Length;

                resposta.OutputStream.Write(bufferArquivo, 0, bufferArquivo.Length);
                resposta.OutputStream.Close();
            }
            else if (path == "/Cambio/USD")
            {
                var controller     = new CambioController();
                var paginaConteudo = controller.USD();

                var bufferArquivo = Encoding.UTF8.GetBytes(paginaConteudo);

                resposta.StatusCode      = 200;
                resposta.ContentType     = "text/html; charset=utf-8";
                resposta.ContentLength64 = bufferArquivo.Length;

                resposta.OutputStream.Write(bufferArquivo, 0, bufferArquivo.Length);
                resposta.OutputStream.Close();
            }

            httpListener.Stop();
        }