internal String GetContentHtml(String url) { var htmlResult = String.Empty; //var phantomJS = new PhantomJS(); var phantomJS = new PhantomJS(); try { phantomJS.OutputReceived += (sender, e) => { //TODO: Implementar }; phantomJS.ErrorReceived += (sender, e) => { //TODO: Implementar AppLog.LogMessage("phantomjserror", e.Data); }; using (var outMemoryStream = new MemoryStream()) { //Cargamos el contenido de la página //phantomJS.RunScript(String.Format(KScriptJS, this.UrlBase), null, null, outMemoryStream); //Cargamos el contenido de la página var scriptJS = @" var system = require('system'); var page = require('webpage').create(); page.open('" + url + @"', function() { system.stdout.writeLine(page.content); phantom.exit(); });" ; phantomJS.RunScript(scriptJS, null, null, outMemoryStream); outMemoryStream.Position = 0; using (var streamReader = new StreamReader(outMemoryStream)) { htmlResult = streamReader.ReadToEnd(); streamReader.Close(); } //Traceamos los mensajes de html retornados AppLog.LogMessage("htmlresult", htmlResult); //Liberamos los recursos utilizados en memoria outMemoryStream.Close(); } } catch (Exception ex) { //TODO: Implementar mecanismo de log //AppLog.LogMessage("phantomjsexception", BusquedaVehiculos.Infra.Serialization.Serializer.Serialize(ex)); //AppLog.LogMessage("phantomjsexception", ex.ToMessageAndCompleteStackTrace()); } finally { //Nos aseguramos que phantomjs.exe esté detenido phantomJS.Abort(); } return(htmlResult); }
public BusquedaResponseDTO BuscarVehiculos(BusquedaRequestDTO request) { var retorno = new BusquedaResponseDTO() { CodProvider = this.CodProvider }; try { int?currentPage = null; int?pagesCount = null; //Procesamos el request while ((!currentPage.HasValue && !pagesCount.HasValue) || (currentPage.Value < pagesCount.Value)) { //Procesamos la solicitud paginada var result = this.ProcessUrl(request, ref currentPage, ref pagesCount); retorno.Items.AddRange(result); //Aumentamos de página si no es ambiente de test if (ParametrosAppSetting.ConfigAmbienteTest == "N") { currentPage++; } else { //Cortamos el ciclo currentPage = 1; pagesCount = 1; } } } catch (Exception ex) { //AppLog.LogMessage("ProviderBaseSync_BuscarVehiculos_exception", BusquedaVehiculos.Infra.Serialization.Serializer.Serialize(ex)); AppLog.LogMessage("ProviderBaseSync_BuscarVehiculos_exception", ex.Message); } return(retorno); }