|
|||||
WebRequestとWebResponseによるWEBダウンロードのサンプルソース(C#.NET)と、 FtpWebRequestとWebResponseによるFTPダウンロードのサンプルソース(C#.NET)です。 WebRequestとFtpWebRequestは使い方が殆ど同じなのでソースコードの流用が可能です。 1.WEBダウンロードのサンプル(VB.NET) WEBダウンロードのサンプル(C#.NET) 2.FTPダウンロードのサンプル(VB.NET) FTPダウンロードのサンプル(C#.NET) 関連サンプル:WIN32APIによるFTP(File Transfer Protocol)送受信のサンプル(VB.NET) 関連サンプル:WIN32APIによるFTP(File Transfer Protocol)送受信のサンプル(VB6) 関連サンプル:BASP21によるFTPアップロード/ダウンロードのサンプル(VBS/VBA) 関連ツール :FTPで差分アップロード/差分ダウンロードするツール 関連ツール :FTP対応のフォルダ同期ツール(フォルダ監視人) ★WEBダウンロード(Form1.cs) private void button1_Click(object sender, EventArgs e) { // WEBファイルのダウンロード Byte[] dat = GetWebFile("http://xxx.xxx.com/xxx.html"); } // WEBファイルのダウンロード private Byte[] GetWebFile(String url) { System.IO.Stream st = null; System.Net.WebResponse rs = null; try { Uri url_uri = new Uri(url); Byte[] dat = new Byte[0] { }; System.Net.WebRequest rq = ((System.Net.HttpWebRequest) System.Net.WebRequest.Create(url)); // HTTP圧縮(GZIP)への対応------------------------- // ((System.Net.HttpWebRequest)rq).AutomaticDecompression = // System.Net.DecompressionMethods.GZip; // ----------------------------------------------- // ブラウザの種類の設定 ((System.Net.HttpWebRequest)rq).UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)"; // 使用言語の設定 ((System.Net.HttpWebRequest)rq).Headers.Add( "Accept-Language", "ja"); // FTPサーバーへ接続 rs = rq.GetResponse(); // ダウンロード開始 st = rs.GetResponseStream(); Byte[] bytes = new Byte[0] { }; int ttlSiz = 0; int oneSiz; do { Array.Resize<Byte>(ref bytes, 1024 * 100); oneSiz = st.Read(bytes, 0, bytes.Length); if (oneSiz > 0) { Array.Resize<Byte>(ref dat, ttlSiz + oneSiz); if (oneSiz != bytes.Length) { Array.Resize<Byte>(ref bytes, oneSiz); } bytes.CopyTo(dat, ttlSiz); ttlSiz = ttlSiz + oneSiz; } } while (oneSiz > 0); return dat; } catch (Exception ex) { throw ex; } finally { if (st != null) { st.Close(); st = null; } if (rs != null) { rs.Close(); rs = null; } } } ★FTPダウンロード(Form1.cs) private void button1_Click(object sender, EventArgs e) { // FTPファイルのダウンロード Byte[] dat = GetFtpFile("ftp://xxx.xxx.com/xxx.txt"); } // FTPファイルのダウンロード private Byte[] GetFtpFile(String url) { System.IO.Stream st = null; System.Net.WebResponse rs = null; try { Uri url_uri = new Uri(url); Byte[] dat = new Byte[0] { }; System.Net.FtpWebRequest rq = ((System.Net.FtpWebRequest) System.Net.WebRequest.Create(url)); // ユーザとパスワードの設定 rq.Credentials = new System.Net.NetworkCredential( "hf524137 ", "vh2dg7G6"); // ファイルのダウンロード指定 rq.Method = System.Net.WebRequestMethods.Ftp.DownloadFile; // KeepAliveの設定 rq.KeepAlive = false; // バイナリ・モード設定 rq.UseBinary = true; // パッシブ・モードの設定 rq.UsePassive = false; // FTPサーバーへ接続 rs = rq.GetResponse(); // ダウンロード開始 st = rs.GetResponseStream(); Byte[] bytes = new Byte[0] { }; int ttlSiz = 0; int oneSiz; do { Array.Resize<Byte>(ref bytes, 1024 * 100); oneSiz = st.Read(bytes, 0, bytes.Length); if (oneSiz > 0) { Array.Resize<Byte>(ref dat, ttlSiz + oneSiz); if (oneSiz != bytes.Length) { Array.Resize<Byte>(ref bytes, oneSiz); } bytes.CopyTo(dat, ttlSiz); ttlSiz = ttlSiz + oneSiz; } } while (oneSiz > 0); return dat; } catch (Exception ex) { throw ex; } finally { if (st != null) { st.Close(); st = null; } if (rs != null) { rs.Close(); rs = null; } } } |