読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

retrofitでHeaderを変える

OkHttp側のインターセプターでヘッダーの値を変えることもできるけど、retrofitでもヘッダーの設定が出来る。APIごとにヘッダを変えるだけでなく、ヘッダーの内容に変数を含めて動的にヘッダーの値を変えることも出来る。

以下、バージョンはretrofit2.0。

APIごとにヘッダーを設定

public interface UserService {  
    @Headers("Cache-Control: max-age=640000")
    @GET("/tasks")
    Call<List<Task>> getTasks();
}

こういう感じで@HeaderアノテーションをつければOK。retrofitの場合はメソッドというかAPIごとの設定になるのでOkHttpでの方法よりも小回りがきく。

動的にヘッダーを変える

ヘッダーの内容に変数を渡したい時もretrofitがなんとかしてくれる。

public interface UserService {  
    @GET("/tasks")
    Call<List<Task>> getTasks(@Header("Content-Range") String contentRange);
}

これでgetTasksメソッドを呼ぶときにcontentRangeという文字列引数を渡してあげれば、その文字列がそのままヘッダーの値として入るようになる。 常時つけるような静的なヘッダーはOkHttpのインターセプターで、OkHttp側でやるのは大仰過ぎるとか動的に値をコントロールしたいのであればretrofit側で行うというほうがよさそうだ。

参考:

Retrofit — Add Custom Request Header