У меня есть некоторый код, который загружает содержимое веб-страницы, которую я использовал некоторое время.Этот код работает нормально, никогда не создавал проблем и до сих пор не ... Однако есть довольно большая страница (2 МБ, без изображений) с 4 таблицами по 4, 20, 100, 600 строк соответственно и около 20в ширину столбцов.
При попытке получить все данные он завершает без каких-либо явных ошибок или исключений, но возвращает только примерно до строки 60 в 4-й таблице - иногда больше, иногда меньше.Браузер завершает загрузку страницы примерно за 20-30 секунд с постоянной, что выглядит как сбрасывание, до полного завершения.
Я пробовал несколько решений от SO и осуществляет поиск без каких-либо других результатов.Ниже приведен текущий код, но у меня есть: прокси, асинхронный, без тайм-аутов, ложная поддержка активности ...
Я не могу использовать WebClient (как еще одну попытку удаленной выборки), потому что мне нужно войти в систему сcookiecontainer.
HttpWebRequest pageImport = (HttpWebRequest)WebRequest.Create(importUri);
pageImport.ReadWriteTimeout = Int32.MaxValue;
pageImport.Timeout = Int32.MaxValue;
pageImport.UserAgent = "User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3";
pageImport.Accept = "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
pageImport.KeepAlive = true;
pageImport.Timeout = Int32.MaxValue;
pageImport.ReadWriteTimeout = Int32.MaxValue;
pageImport.MaximumResponseHeadersLength = Int32.MaxValue;
if (null != LoginCookieContainer)
{
pageImport.CookieContainer = LoginCookieContainer;
}
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
using (WebResponse response = pageImport.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream, encode))
{
stream.Flush();
HtmlRetrieved = reader.ReadToEnd();
}