Sie haben zwei Möglichkeiten - Sie können es als Parameter auf Ihren Anruf hinzufügen können -
@GET("api/Profiles/GetProfile?id={id}")
Call<UserProfile> getUser(@Path("id") String id, @Header("Authorization") String authHeader);
Dies ist ein bisschen lästig sein kann, weil man in der "Bearer" + token
bei jedem Aufruf übergeben werden müssen. Dies ist geeignet, wenn Sie nicht viele Anrufe haben, die das Token benötigen.
Wenn Sie den Header auf alle Anforderungen hinzufügen möchten, können Sie eine okhttp Interceptor verwenden -
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.addHeader("Authorization", "Bearer " + token)
.build();
return chain.proceed(newRequest);
}
}).build();
Retrofit retrofit = new Retrofit.Builder()
.client(client)
.baseUrl(/** your url **/)
.addConverterFactory(GsonConverterFactory.create())
.build();
diese Weise wird ein Header nur das Hinzufügen funktioniert, wenn ‚token‘ eine Kompilierung konstant ist. Javas Annotationsregeln und so. Die Dokumentation gibt Ihnen eine andere Möglichkeit, einen Header zu integrieren: http://square.github.io/retrofit/ (mach es zu einem Methodenparameter) – zapl