C# HttpClientでBasic認証する
今回はHttpClientでBasic認証を行います。
Basic認証するユーザ名とパスワードをコロン":“でつないでBase64形式にエンコーディングして、その値をAuthorizationヘッダに詰めればOKです。
using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; // Basic認証するユーザ名とパスワード var userName = "ohke"; var userPassword = "ohkepassword"; // リクエストの生成 var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("http://ohke.hateblo.jp/") }; // Basic認証ヘッダを付与する request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, userPassword)))); // リクエストの送信 using (var httpClient = new HttpClient()) { var response = await httpClient.SendAsync(request); }
試しにこのブログにリクエストを飛ばして、wiresharkでリクエストパケットをキャプチャしてみますと、Authorizationに設定したユーザ名・パスワードが送られていることが確認できます。