この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
アクセス制限をかけていたり、開発環境などの特殊な環境にあるネットワークの画像を取得する際、HTTPリクエストに任意のヘッダーを使いたい ということがあるかもしれません。(ほとんどないと思いますが。。。)
そんなときに便利な方法を、備忘録として記載します。
準備
非同期の画像取得処理をしてくれるライブラリ Glide をプロジェクトに導入します。 (執筆時点の最新はVer.3.7.0)
dependencies {
compile 'com.github.bumptech.glide:glide:3.7.0'
}
Glide に任意のリクエストヘッダーを追加する
通常であれば以下のように利用すると思います。
ImageView imageView = (ImageView)findViewById(R.id.imageView);
String url = "<画像のURL>";
Glide.with(this).load(url).into(imageView);
ヘッダーを追加する場合は、 GlideUrlクラス
を利用することで簡単に実装することができます。
ImageView imageView = (ImageView)findViewById(R.id.imageView);
String url = "<画像のURL>";
GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder()
.addHeader("key", "value")
.build());
Glide.with(this).load(glideUrl).into(imageView);
実行結果
stetho を導入し、リクエスト内容を確認したところ、指定したヘッダー情報がちゃんと記載されていました。
[ヘッダーを追加していない場合]
[ヘッダーを追加した場合]