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つの要求を行うことになります。
ありがとう!