[Android][Tips] Glideに任意のリクエストヘッダーを追加する方法

2016.03.22

この記事は公開されてから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 を導入し、リクエスト内容を確認したところ、指定したヘッダー情報がちゃんと記載されていました。

[ヘッダーを追加していない場合]

スクリーンショット 2016-03-22 20.28.26

[ヘッダーを追加した場合]

スクリーンショット 2016-03-22 20.29.29

参考