|
|||||
WebRequestとWebResponseによるWEBダウンロードのサンプルソース(VB.NET)と、 FtpWebRequestとWebResponseによるFTPダウンロードのサンプルソース(VB.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.vb) Private Sub Button1_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' WEBファイルのダウンロード Dim dat As Byte() = GetWebFile("http://xxx.xxx.com/xxx.html") End Sub ' WEBファイルのダウンロード Private Function GetWebFile(ByVal url As String) As Byte() Dim st As System.IO.Stream = Nothing Dim rs As System.Net.WebResponse = Nothing Try Dim url_uri As New Uri(url) Dim dat As Byte() = New Byte(-1) {} Dim rq As System.Net.WebRequest = _ CType(System.Net.WebRequest.Create(url), _ System.Net.HttpWebRequest) ' HTTP圧縮(GZIP)への対応------------------------- ' CType(rq, System.Net.HttpWebRequest).AutomaticDecompression = _ ' System.Net.DecompressionMethods.GZip ' ----------------------------------------------- ' ブラウザの種類の設定 CType(rq, System.Net.HttpWebRequest).UserAgent = _ "Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)" ' 使用言語の設定 CType(rq, System.Net.HttpWebRequest).Headers.Add( _ "Accept-Language", "ja") ' FTPサーバーへ接続 rs = rq.GetResponse() ' ダウンロード開始 st = rs.GetResponseStream() Dim bytes As Byte() Dim ttlSiz As Integer = 0 Dim oneSiz As Integer Do ReDim bytes((1024 * 100) - 1) oneSiz = st.Read(bytes, 0, bytes.Length) If oneSiz > 0 Then ReDim Preserve dat(ttlSiz + oneSiz - 1) If oneSiz <> bytes.Length Then ReDim Preserve bytes(oneSiz - 1) End If bytes.CopyTo(dat, ttlSiz) ttlSiz = ttlSiz + oneSiz End If Loop While (oneSiz > 0) Return dat Catch ex As Exception Throw ex Finally If st Is Nothing = False Then st.Close() st = Nothing End If If rs Is Nothing = False Then rs.Close() rs = Nothing End If End Try End Function ★FTPダウンロード(Form1.vb) Private Sub Button1_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' FTPファイルのダウンロード Dim dat As Byte() = GetFtpFile("ftp://xxx.xxx.com/xxx.txt") End Sub ' FTPファイルのダウンロード Private Function GetFtpFile(ByVal url As String) As Byte() Dim st As System.IO.Stream = Nothing Dim rs As System.Net.WebResponse = Nothing Try Dim url_uri As New Uri(url) Dim dat As Byte() = New Byte(-1) {} Dim rq As System.Net.FtpWebRequest = _ CType(System.Net.FtpWebRequest.Create(url), _ System.Net.FtpWebRequest) ' ユーザとパスワードの設定 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() Dim bytes As Byte() Dim ttlSiz As Integer = 0 Dim oneSiz As Integer Do ReDim bytes((1024 * 100) - 1) oneSiz = st.Read(bytes, 0, bytes.Length) If oneSiz > 0 Then ReDim Preserve dat(ttlSiz + oneSiz - 1) If oneSiz <> bytes.Length Then ReDim Preserve bytes(oneSiz - 1) End If bytes.CopyTo(dat, ttlSiz) ttlSiz = ttlSiz + oneSiz End If Loop While (oneSiz > 0) Return dat Catch ex As Exception Throw ex Finally If st Is Nothing = False Then st.Close() st = Nothing End If If rs Is Nothing = False Then rs.Close() rs = Nothing End If End Try End Function |