HttpWebRequestクラスを使ってBasic認証を行う

BASIC認証の掛かったウェブサイトにアクセスします。レスポンスを扱うのにRxを使っていますので、Microsoft.Phone.ReactiveとSystem.Observableを参照しておく必要があります。

まずはHttpWebRequestクラスを使ってBasic認証を行います。CreateHttpメソッドでインスタンスを生成します。Credentialsプロパティに認証情報を設定し、BeginXXX/EndXXXでリクエストレスポンスを取得するので、Observable.FromAsyncPatternメソッドで包んでいます。

// using Microsoft.Phone.Reactive;
 
// HttpWebRequestクラスを使ったBASIC認証
private void btnBasic_Click(object sender, RoutedEventArgs e)
{
    var req = HttpWebRequest.CreateHttp("http://www.maido3.com/server/script/htaccess/");
    req.Credentials = new NetworkCredential("big-server", "test");
 
    Observable.FromAsyncPattern<WebResponse>(req.BeginGetResponse, req.EndGetResponse)()
     .Select(res => new System.IO.StreamReader(res.GetResponseStream()).ReadToEnd())
     .ObserveOnDispatcher()
     .Subscribe(msg => MessageBox.Show(msg)
        , ex => MessageBox.Show(ex.Message));
}