So-net無料ブログ作成

BASIC認証でHTTP通信 [プログラミング]

Javaでは、HTTP通信をするプログラムを簡単に作ることが出来ます。
(サンプルは前回を参照)


BASIC認証が必要なページへアクセスする場合は、通信を行う前に、以下の処理を行います。

Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication()
    {
        final String username = "~~";  // 設定する
        final String password = "~~";  // 設定する

	return new PasswordAuthentication(username, password.toCharArray());
    }
});

サイト毎にパスワード等を切り替えるのなら、AuthenticatorクラスのgetRequestingHostメソッドで通信先のホストが分かるので、それを利用すれば良いでしょう。


これ以外にも、直接リクエストヘッダにパスワードを指定する方法もあります。

HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("Authorization", 
                        "Basic " + Base64でエンコード(username + ":" + password));

ですが、Base64のエンコード機能は、Javaの標準に含まれていないので、自分で作るか、どこかから入手するかしなければならないので、こっちの方法はあまりお勧めしません。

[飛行機] 今日の一冊
NHKスペシャル 100年の難問はなぜ解けたのか―天才数学者の光と影

100年の難問はなぜ解けたのか―天才数学者の光と影

  • 作者: 春日 真人
  • 出版社/メーカー: 日本放送出版協会
  • 発売日: 2008/06
  • メディア: 単行本

タグ:Java
nice!(1)  コメント(0)  トラックバック(0) 

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。