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); }
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(); }
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)); }
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); }