在301/302重定向上的WebBrowser控件空白的ScreenShot

时间:2009-01-23 15:18:36

标签: .net com browser webbrowser-control

我正在使用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次请求。

谢谢!

2 个答案:

答案 0 :(得分:1)

根据msdn,webbrowser控件不支持drawtobitmap。你必须找到另一种方式

答案 1 :(得分:1)

它没有正式支持它,但它可以工作(不应该依赖它)。