Oui, vous pouvez les passer en cours d'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 de ce 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());
}
}
Dónde Somehow.Magically.getToken()
est un appel de méthode qui renvoie un jeton, à vous de voir où et comment vous le définissez.
Vous pouvez bien sûr avoir plus d'un @Header("Blah") String blah
dans l'implémentation de l'interface, comme dans votre cas !
Je l'ai trouvé déroutant aussi, la documentation le dit clairement remplace l'en-tête, mais il DOESN'T ¡!
Il est en effet ajouté comme avec @Headers("hardcoded_string_of_liited_use")
annotation
J'espère que cela vous aidera ;)