通常、Httpアクセスを.NETでする場合はBasic認証の情報は、NetworkCredentialクラスが作成してくれるのですが注意が必要です。
GETする場合は、NetworkCredentialクラスでOKなのですが。POSTする場合はなぜかうまくいきません。
自前で、認証ヘッダを追加する必要があります。
んで、↓のサンプルコードです。
'HttpWebRequest作成
Dim objRequest As HttpWebRequest = WebRequest.Create(url)
If method ="GET" Then
Dim objRequest As HttpWebRequest = WebRequest.Create(url)
If method ="GET" Then
'GET
'basic認証情報作成
objRequest.Credentials = New NetworkCredential(UserName, UserPassword)
Else'basic認証情報作成
objRequest.Credentials = New NetworkCredential(UserName, UserPassword)
'POST
'Basic認証用ヘッダ文字列
Dim strAuth As String = "Basic " + Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(AuthUserName + ":" + AuthUserPassword))
'basic認証情報作成
objRequest.Headers.Add("Authorization", strAuth)
End If'Basic認証用ヘッダ文字列
Dim strAuth As String = "Basic " + Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(AuthUserName + ":" + AuthUserPassword))
'basic認証情報作成
objRequest.Headers.Add("Authorization", strAuth)
コメント