0

SmallSharpTools Web Previewのコードを使用してWebサイトのスクリーンショットを取得していますが、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つの要求を行うことになります。

ありがとう!

4

2 に答える 2

1

公式にはサポートしていませんが、動作する可能性があります (依存するべきではありません)。

于 2010-01-13T10:45:10.833 に答える