HtmlAgilityPack HtmlDocument.Load가 "개체가 인스턴스로 설정되지 않았습니다."예외를 throw합니다.

c# html-agility-pack

문제

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

오류가 발생합니다. 로드 (스트림) 호출. 어떤 아이디어?

수락 된 답변

코드를 실행할 때 발생하는 오류는 다음과 같습니다.

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

표준 .NET Framework 인코딩 클래스에 의해 throw됩니다. 이는 페이지가 .NET에서 지원하지 않는 인코딩을 선언했음을 의미합니다. 나는 이것을 다음과 같이 고쳤다.

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

추신 : 나는 HTML 민첩성 팩 버전 1.3을 사용하고 있습니다.


인기 답변

어쩌면 당신이 필요로하는 대답은 아니지만 스택 추적은 응답 스트림 유형을 지나서 페이지의 load 메소드를 수행 한 후에 예외가 발생했음을 나타냅니다.
htmldocument 할당 전에 TextReader를 추가하고 그 스트림 객체를 전달할 가치가 있습니다. 그런 다음 textreader var를 htmldoc의 Load 메서드에 전달합니다.

최신 htmlagility에 대한 소스 코드를 디버깅하기 전에 먼저 모든 유형 / 소품의 상태를 포함하여 질문을 편집하여 명확하게 이해해야한다고 생각합니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.