WebClient で Basic 認証サイトにアクセス

Imports System
Imports System.Text
Imports System.Net

' http://www.atmarkit.co.jp/fdotnet/dotnettips/799base64/base64.html
Public Class Base64String

    Private enc As Encoding

    Public Sub New(ByVal encStr As String)
        enc = Encoding.GetEncoding(encStr)
    End Sub

    Public Function Encode(ByVal str As String) As String
        Return Convert.ToBase64String(enc.GetBytes(str))
    End Function

    Public Function Decode(ByVal str As String) As String
        Return enc.GetString(Convert.FromBase64String(str))
    End Function

End Class


Module Module1

    Sub Main()
        Dim wc As New WebClient
        Dim b64 As New Base64String("UTF-8")

        wc.Headers.Add("Authorization", _
                       "Basic " & b64.Encode("user:passwd"))
        Try
            Dim stream As System.IO.Stream = _
               wc.OpenRead("http://www.example.com/")
            Dim reader As New System.IO.StreamReader(stream)
            System.Console.WriteLine(reader.ReadToEnd())
            reader.Close()
            stream.Close()
        Catch e As WebException
            System.Console.WriteLine(e.Message)
        End Try

    End Sub

End Module