Пример #1
0
        private static string Navegar(Marinheiro marinheiro, string uri, bool usarProxy, string address, string userName, string password, string domain)
        {
            string resultado = string.Empty;
            try
            {
                WebProxy webProxy = null;

                if (usarProxy)
                {
                    NetworkCredential networkCredential = new NetworkCredential(userName, password, domain);
                    webProxy = new WebProxy(address, false, null, networkCredential);
                }

                resultado = marinheiro.BuscarConteudo(uri, webProxy);
            }
            catch (WebException ex)
            {
                var sb = new StringBuilder();
                sb.Append("   uri: " + uri);
                sb.Append("  erro: " + ex.Message);
                Console.WriteLine(sb.ToString());
            }
            catch (UriFormatException ex)
            {
                var sb = new StringBuilder();
                sb.Append("uri: " + uri);
                sb.Append("  erro: " + ex.Message);
                Console.WriteLine(sb.ToString());
            }
            return resultado;
        }
Пример #2
0
        public void web_exception_estoura_pro_dominio()
        {
            var htmlRepositorioMock = new Mock<IHtmlRepositorio>();
            htmlRepositorioMock.Setup(x => x.Ler(It.IsAny<string>(), It.IsAny<string>(), null)).Throws<WebException>();

            var robo = new Marinheiro(htmlRepositorioMock.Object);
            Assert.Throws<WebException>(() => robo.BuscarConteudo("http://stackoverflow.com/que", null));
        }
Пример #3
0
        public void deve_retornar_conteudo_da_uri_passada()
        {
            var htmlRepositorioMock = new Mock<IHtmlRepositorio>();
            htmlRepositorioMock.Setup(x => x.Ler(It.IsAny<string>(), It.IsAny<string>(), null)).Returns("<html />");

            var robo = new Marinheiro(htmlRepositorioMock.Object);
            string conteudo = robo.BuscarConteudo("http://www.w3schools.com/html/tryit.asp?filename=tryhtml_intro", null);
            Assert.IsNotNullOrEmpty(conteudo);
        }
Пример #4
0
        private static void Main(string[] args)
        {
            string uri = string.Empty;
            string regex = string.Empty;

            if (args.Length > 0)
            {
                uri = args[0];
            }
            else
            {
                Console.Write("URL: ");
                uri = Console.ReadLine();
            }

            if (args.Length > 1)
            {
                regex = args[1];
            }
            else
            {
                Console.Write("extrair via regex: ");
                regex = Console.ReadLine();
            }

            Console.WriteLine("");
            Console.WriteLine(uri);
            Console.WriteLine(regex);
            Console.WriteLine("");

            var htmlRepositorio = new HtmlRepositorio();
            var marinheiro = new Marinheiro(htmlRepositorio);
            string resultado = string.Empty;

            var useProxy = Convert.ToBoolean(ConfigurationManager.AppSettings["useProxy"]);
            var proxyAddress = ConfigurationManager.AppSettings["proxyAddress"];
            var domain = ConfigurationManager.AppSettings["domain"];
            var userName = ConfigurationManager.AppSettings["userName"];
            var password = ConfigurationManager.AppSettings["password"];

            resultado = Navegar(marinheiro, uri, useProxy, proxyAddress, userName, password, domain);

            //extrair
            string resultadoExtracao = string.Empty;
            if (!string.IsNullOrEmpty(regex))
            {
                resultadoExtracao = ExtrairRegex(regex, resultado);
            }
            else
            {
                resultadoExtracao = resultado;
            }

            //imprime
            Console.WriteLine(resultadoExtracao);
            Console.ReadLine();
        }