Я хочу получить обычный текст, используя класс WebRequest, точно так же, как мы получаем, когда используем webbrowser1.Document.Body.InnerText
. Я пробовал следующий код
public string request_Resource()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myurl);
Stream stream = request.GetResponse().GetResponseStream();
StreamReader sr = new StreamReader(stream);
WebBrowser wb = new WebBrowser();
wb.DocumentText = sr.ReadToEnd();
return wb.Document.Body.InnerText;
}
когда я выполняю это, получаю NullReferenceException
.
Есть ли лучший способ получить обычный текст.
Примечание. Я не могу использовать элемент управления веб-браузером напрямую для загрузки веб-страницы, потому что я не хочу иметь дело со всеми теми событиями, которые запускаются несколько раз при загрузке страницы.
ОБНОВЛЕНИЕ: по предложению я изменил свой код, чтобы использовать класс WebClient вместо WebRequest. Теперь мой код выглядит примерно так
public string request_Resource()
{
WebClient wc = new WebClient();
wc.Proxy = null;
//The user agent header is added to avoid any possible errors
wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729; .NET4.0C)");
return wc.DownloadString(myurl);
}
Я рассматриваю возможность использования HTML Utility Pack, может ли кто-нибудь предложить лучшую альтернативу.