我正在使用SmallSharpTools Web Preview中的一些代码来获取网站的屏幕截图,但如果网址返回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以便我可以告诉页面重定向(我想我还需要重定向网址)
如果所有其他方法都失败了,我可以先做HTTPWebRequest并排除事情,但之后我会对1页进行2次请求。
谢谢!
答案 0 :(得分:1)
根据msdn,webbrowser控件不支持drawtobitmap。你必须找到另一种方式
答案 1 :(得分:1)
它没有正式支持它,但它可以工作(不应该依赖它)。