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