Oui, vous pouvez les transmettre lors de l'exécution. En fait, à peu près exactement comme vous l'avez tapé. Ce serait dans votre classe d'interface API, nommée par exemple SecretApiInterface.java
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
Ensuite, vous passez les paramètres à cette interface à partir de votre requête, quelque chose du genre: (ce fichier serait par exemple SecretThingRequest.java )
public class SecretThingRequest extends RetrofitSpiceRequest<SecretThing.List, SecretApiInteface>{
private String token;
public SecretThingRequest(String token) {
super(SecretThing.List.class, SecretApiInterface.class);
this.token = token;
}
@Override
public SecretThing.List loadDataFromNetwork() {
SecretApiInterface service = getService();
return service.getSecretThings(Somehow.Magically.getToken());
}
}
Où se Somehow.Magically.getToken()
trouve un appel de méthode qui renvoie un jeton, c'est à vous de décider où et comment vous le définissez.
Vous pouvez bien sûr avoir plus d'une @Header("Blah") String blah
annotations dans l'implémentation de l'interface, comme dans votre cas!
Je l'ai trouvé déroutant aussi, la documentation indique clairement qu'il remplace l'en-tête, mais ce n'est PAS le cas !
Il est en fait ajouté comme avec une @Headers("hardcoded_string_of_liited_use")
annotation
J'espère que cela t'aides ;)