VB.NET HttpClient Example: System.Net.Http

Download a web page with HttpClient. Use the Async and Await keywords and the System.Net.Http namespace.

HttpClient. A network access takes some time to finish. This causes a pause in our program's execution. With Async and Await we use HttpClient to download pages in a better way.Async, Await

With asynchronous programming, we download files without interrupting other parts of our program. Many details are required to use HttpClient.

An example. Let us examine this simple program. We first add an "Imports System.Net.Http" statement at the top. In Main we create a Task.

AddressOf: We specify the Sub DownloadPageAsync with the AddressOf operator. This Sub is run when the Task starts.


HttpClient: We create an HttpClient instance in a Using-statement. This ensures disposal of resources.


GetAsync: We use GetAsync, Content and ReadAsStringAsync to download the web file with HttpClient.

Result: The program will display the first 50 characters in a text version of a Wikipedia page.

VB.NET program that uses HttpClient Imports System.Net.Http Module Module1 Sub Main() ' Create new Task. ' ... Use AddressOf to reference a method. Dim t As Task = New Task(AddressOf DownloadPageAsync) ' Start the task. t.Start() ' Print a message as the page downloads. Console.WriteLine("Downloading page...") Console.ReadLine() End Sub Async Sub DownloadPageAsync() Dim page As String = "" ' Use HttpClient in Using-statement. ' ... Use GetAsync to get the page data. Using client As HttpClient = New HttpClient() Using response As HttpResponseMessage = Await client.GetAsync(page) Using content As HttpContent = response.Content ' Get contents of page as a String. Dim result As String = Await content.ReadAsStringAsync() ' If data exists, print a substring. If result IsNot Nothing And result.Length > 50 Then Console.WriteLine(result.Substring(0, 50) + "...") End If End Using End Using End Using End Sub End Module Output Downloading page... <!DOCTYPE html> <html lang="en" dir="ltr" class="c...

Some notes. HttpClient is a more advanced class, and was added later, than other classes like WebClient. This class is built for asynchronous use.

For downloading web pages, it is better to enable and support GZIP compression. Another header can be added to HttpClient. We can use VB.NET to decompress these files.

A review. HttpClient is a powerful class. And it is an effective way to download web pages and other files through HTTP (a protocol).
Dot Net Perls
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to