HttpClientクラスで、GET要求にて指定URL(URI)から非同期でデータをダウンロードする方法を記載します。
・System.Netをインポートする
GetStringAsync()メソッドにて、URL(URI)から文字列としてダウンロードする
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
DirectCast(sender, Button).Enabled = False
Dim url As Uri = New Uri("http://microsoft.com")
Dim html As String
Using HttpCl As New HttpClient()
html = Await HttpCl.GetStringAsync(url)
End Using
'ダウンロードしたデータを表示する
Console.WriteLine(html)
DirectCast(sender, Button).Enabled = True
End Sub
GetByteArrayAsync()メソッドにて、URLからバイナリーデータとしてダウンロードする
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
DirectCast(sender, Button).Enabled = False
Dim url As Uri = New Uri("http://microsoft.com")
Using HttpCl As New HttpClient()
Data = Await HttpCl.GetByteArrayAsync(url)
End Using
'ダウンロードしたデータを表示する
Dim str As String = System.Text.Encoding.UTF8.GetString(Data) 'バイト配列を文字列に変換
Console.WriteLine(str)
DirectCast(sender, Button).Enabled = True
End Sub
GetStreamAsync()メソッドにて、URLからストリームで読み込む
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
DirectCast(sender, Button).Enabled = False
Dim url As Uri = New Uri("http://microsoft.com")
Dim str As String
Using HttpCl As New HttpClient()
Dim dt As System.IO.Stream = Await HttpCl.GetStreamAsync(url) 'データを読み取るStreamを開く
Dim sr As New System.IO.StreamReader(dt, System.Text.Encoding.UTF8)
str = sr.ReadToEnd()
dt.Close()
End Using
'ダウンロードしたデータを表示する
Console.WriteLine(str)
DirectCast(sender, Button).Enabled = True
End Sub
GetAsync()メソッドで、URL(URI)からダウンロードする
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
DirectCast(sender, Button).Enabled = False
Dim url As Uri = New Uri("http://microsoft.com")
Dim str As String
Using HttpCl As New HttpClient()
'ヘッダー部作成
HttpCl.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko")
HttpCl.DefaultRequestHeaders.Add("Accept-Language", "ja-JP")
HttpCl.Timeout = TimeSpan.FromSeconds(5.0)
Using response = Await HttpCl.GetAsync(url)
str = Await response.Content.ReadAsStringAsync()
End Using
End Using
'ダウンロードしたデータを表示する
Console.WriteLine(str)
DirectCast(sender, Button).Enabled = True
End Sub