Я использую некоторый код из SmallSharpTools Web Preview, чтобы получить снимки экрана с веб-сайтами, но я получаю пустой снимок экрана, если URL-адрес возвращает перенаправление 301/302.
WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.Size = new Size(1024, 768);
wb.ScriptErrorsSuppressed = true;
wb.AllowNavigation = true;
wb.NewWindow += new System.ComponentModel.CancelEventHandler(wb_NewWindow);
wb.Navigate(url);
// wait for it to load
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
bitmap = new Bitmap(width, height);
Rectangle rect = new Rectangle(0, 0, width, height);
wb.DrawToBitmap(bitmap, rect);
Я пытался получить доступ к ActiveXInstance, который упаковывает Windows.Forms.WebBrowser, но я могу получить коды только в случае ошибки (например, 404/500), но мне нужно проверить, не было ли это 301/302, чтобы я мог могу сказать перенаправить страницу (я думаю, что мне также понадобится URL перенаправления)
Если ничего не помогло, я мог бы сделать запрос HTTPWebRequest и разобраться перед этим, но тогда я бы сделал 2 запроса на 1 страницу.
Спасибо!