2011-06-29 7 views
0

私はWebページからファイルのダウンロードを自動化しようとしています。問題は、Webが直接ファイルを返すことです。たとえばhttp://www.someweb.com/generatefile.aspxのように、そのページに移動するとファイルが返されます。 私はWebClientで試してみましたが、うまくいきませんでした。常にエラー500を出しました。しかし、IExplorerやFirefoxを使いこなすとうまくいきます。だから、WebBrowserコントロールで試してみました。これは、Webへのログインなど、他のすべてのものを作ったものです。任意の助けWebBrowser Controlを使用してファイルをダウンロードする

WebClient client = new WebClient(); 
client.DownloadFile(url, "D:/ss.pdf"); //Here error 500 

とWebブラウザーで

WebBrowser wb = new WebBrowser(); 
wb.FileDownload += new EventHandler(wb_FileDownload); //in the event handler i not found how save the file 
wb.Navigate(url); 

感謝。

+0

「URLDownloadToFile」または「URLDownloadToCacheFile」を使用することができます(http://stackoverflow.com/a/19025793/1768303)。 – Noseratio

答えて

1

もう少し設定する必要がありますが、代わりにHttpWebRequestを使用することをおすすめします。

予想されるファイルタイプがわかっている場合は、既知のタイプのファイルシステム上にファイルを作成し、ストリームリファレンスを取得できます。次に、HttpWebRequest::GetResponse()が返す応答ストリームを書きます。

私は過去に言及したクラスを使用しようとしましたが、常にHttpWebRequestとHttpWebResponseを使用して後退しています。先ほど言いましたが、これはもう少し低レベルですが、多くのシナリオでは、低レベルのHTTP機能に対する追加の制御が私の経験に役立っています。

+0

ありがとうregexは、私がやったことです。 – Gabriel

0

FTPWebRequestを試しましたか? WebBrowserは、GUIスタイルのインタラクションのために作られたもので、自動化のためのものではありません。

+0

はい、httpウェブ要求です... ftpは適合しません。 – Gabriel