我正在使用 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);
我已尝试访问 Windows.Forms.WebBrowser 包装的 ActiveXInstance,但我只能在出现错误(如 404/500)时获取代码,但我需要查看它是否为 301/302,以便我可以告诉要重定向的页面(我想我还需要重定向 url)
如果一切都失败了,我可以做一个 HTTPWebRequest 并事先整理好东西,但是我会为 1 个页面发出 2 个请求。
谢谢!