In Retrofit 2, when we need to add additional headers, we would just add an implementation of the
But sometimes, we only need to add a particular header for one API call, and the value is set dynamically at runtime. It's a bit tedious to add another interceptor just for that call.
@Header annotation is really handy for this case. So we can pass a parameter annotated with
@Header to the API call method. And Retrofit will take care of it.
Let's take look at an example:
Observable<WeatherInfo> getWeather(@Header("foo") String value, Location location);
That would allow us to pass a
String value as a request header for the
getWeather API call. If the
foo header will just be omitted from the request.