HtmlAgilityPack HtmlDocument.Load lève une exception "objet non défini à une instance"

c# html-agility-pack

Question

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

Provoque une erreur. sur l'appel Load (flux). Des idées?

Réponse acceptée

L'erreur que je reçois lorsque je lance votre code est la suivante:

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

Il est transmis par les classes de codage .NET Framework standard. Cela signifie que la page déclare un codage non pris en charge par .NET. Je l'ai corrigé comme ceci:

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

PS: J'utilise Html Agility Pack version 1.3


Réponse populaire

Peut-être pas la réponse dont vous avez besoin, mais la trace de la pile indique que l'exception s'est produite après le passage du type de flux de réponse dans la méthode de chargement de la page.
Il peut être intéressant d’ajouter un TextReader avant l’affectation htmldocument et de lui transmettre l’objet stream. Puis passez la variable textreader à la méthode Load de htmldoc.

Avant de déboguer le code source pour la dernière version de htmlagility, je pense que vous devriez d’abord modifier votre question pour y inclure les états de tous les types / accessoires qui vous intéressent, par souci de clarté.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi