Як я можу отримати вміст веб-сторінки за допомогою ASP.NET? Мені потрібно написати програму, щоб отримати HTML веб-сторінки та зберегти її у рядкову змінну.
Як я можу отримати вміст веб-сторінки за допомогою ASP.NET? Мені потрібно написати програму, щоб отримати HTML веб-сторінки та зберегти її у рядкову змінну.
Відповіді:
Ви можете використовувати WebClient
Using System.Net;
WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.gooogle.com");
Я раніше стикався з проблемами з Webclient.Downloadstring. Якщо ви це зробите, ви можете спробувати це:
WebRequest request = WebRequest.Create("http://www.google.com");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
Я рекомендую не використовувати WebClient.DownloadString
. Це пов’язано з тим, що (принаймні в .NET 3.5) DownloadString недостатньо розумний, щоб використовувати / видалити специфікацію, якщо вона має бути. Це може призвести до того, що специфікація ( 
) неправильно відображається як частина рядка, коли повертаються дані UTF-8 (принаймні без набору символів) - ick!
Натомість цей незначний варіант буде коректно працювати зі специфікаціями:
string ReadTextFromUrl(string url) {
// WebClient is still convenient
// Assume UTF8, but detect BOM - could also honor response charset I suppose
using (var client = new WebClient())
using (var stream = client.OpenRead(url))
using (var textReader = new StreamReader(stream, Encoding.UTF8, true)) {
return textReader.ReadToEnd();
}
}