HtmlAgilityPack HtmlDocument.Load genera l'eccezione "oggetto non impostato su un'istanza"

c# html-agility-pack

Domanda

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 errore sulla chiamata Load (stream). Qualche idea?

Risposta accettata

L'errore che ottengo durante l'esecuzione del codice è:

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

È generato dalle classi di codifica standard di .NET Framework. Significa che la pagina dichiara una codifica non supportata da .NET. L'ho risolto così:

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

PS: sto utilizzando la versione 1.3 di Html Agility Pack


Risposta popolare

Forse non è la risposta che ti serve, ma la traccia dello stack indica che si è verificata un'eccezione dopo aver passato il tipo di flusso di risposta al metodo di caricamento della pagina.
Potrebbe valere la pena aggiungere un TextReader prima dell'assegnazione htmldocument e passare l'oggetto flusso a quello. Quindi passa la variabile textreader al metodo Load di htmldoc.

Prima di eseguire il debug del codice sorgente per l'ultima htmlagility, penso che dovresti prima modificare la tua domanda per includere gli stati di tutti i tipi / oggetti di interesse, per chiarezza.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché