Tak, można przekazać je w czasie wykonywania. W rzeczywistości, dokładnie tak, jak to napisałeś. Byłoby to w swojej klasie interfejsu API o nazwie powiedzieć SecretApiInterface.java
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
Następnie przekazać parametry do tego interfejsu od Państwa potrzeb, coś wzdłuż tych linii: (plik ten byłby na przykład 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());
}
}
gdzie Somehow.Magically.getToken()
jest wywołanie metody, która zwraca token, to do ciebie, gdzie i jak go zdefiniować.
Możesz oczywiście mieć więcej niż jedną adnotację @Header("Blah") String blah
w implementacji interfejsu, tak jak w twoim przypadku!
znalazłem to zbyt niejasna, the documentation wyraźnie mówi, że zastępuje nagłówek, ale nie!
To jest w rzeczywistości dodał jak z @Headers("hardcoded_string_of_liited_use")
adnotacji
nadzieję, że to pomaga;)
Czy zdajesz sobie z tego sprawę? Muszę przekazać token w nagłówku również – theSociableme
Szukam również rozwiązania tego problemu, z dokumentacji, która brzmi jak [@Headers()] (http://square.github.io/retrofit/javadoc/retrofit/ http/Header.html) adnotacja na temat metody _adds fields_ do nagłówka jeden po drugim, ale obsługuje tylko literały. I [@Header ("parametr") Ciąg znaków] (http://square.github.io/retrofit/javadoc/retrofit/http/Header.html) Adnotacja parametrów _replaces_ nagłówka z podaną wartością. – nana
To samo dotyczy, nie można dowiedzieć się, jak obsługiwać sesje podczas korzystania z modernizacji. – feresr