HtmlAgilityPack HtmlDocument.Load lanza la excepción "objeto no establecido en una instancia"

c# html-agility-pack

Pregunta

var uri = new Uri("http://store.scrapbook.com/cos-pad825.html?t12-13=cosmo%20cricket&date=20110309");
var request = (HttpWebRequest)WebRequest.Create(url);
var cookieContainer = new CookieContainer();

request.CookieContainer = cookieContainer;
request.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
request.Method = "GET";
request.AllowAutoRedirect = true;
request.Timeout = 15000;

var response = (HttpWebResponse)request.GetResponse();
var page = new HtmlDocument();
var stream = response.GetResponseStream();
page.Load(stream);

Causa un error. en la llamada de carga (secuencia). ¿Algunas ideas?

Respuesta aceptada

El error que recibo cuando ejecuto tu código es:

System.ArgumentException: 'ISO-8559-1' is not a supported encoding name.

Es lanzado por las clases de codificación estándar de .NET Framework. Significa que la página declara una codificación no compatible con .NET. Lo arreglé así:

var page = new HtmlDocument();
page.OptionReadEncoding = false;

PS: Estoy usando el Html Agility Pack versión 1.3


Respuesta popular

Tal vez no sea la respuesta que necesita, pero el seguimiento de la pila indica que se produjo la excepción después de pasar el tipo de secuencia de respuesta al método de carga de la página.
Podría valer la pena agregar un TextReader antes de la asignación htmldocument, y pasar el objeto de flujo a eso. Luego pase el lector de texto var al método de carga de htmldoc.

Antes de depurar el código fuente de la última htmlagility, creo que primero debe editar su pregunta para incluir los estados de todos los tipos / accesorios de interés, para mayor claridad.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué