Thanks but using ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 did not seem to have work.
Entering the username and password in the the url is a browser feature. The browser removes the values from the url before making the request, and passes them as basic authentication headers.
So to convert to webclient, remove from url and use basic authentication.
Using RestSharp below worked fine.
Dim client = New RestClient("https://mydomain.com/wp-json/wc/v3/products")
client.Timeout = -1
client.AddDefaultQueryParameter("consumer_key", "ck_12345678901234567890")
client.AddDefaultQueryParameter("consumer_secret", "cs_12345678901234567890")
client.Authenticator = New HttpBasicAuthenticator(MyUsername, MyPassword)
Dim request = New RestRequest(Method.[GET])
Dim response As IRestResponse = client.Execute(request)