예, 런타임에 전달할 수 있습니다. 사실 입력 한 것과 거의 동일합니다. 이것은 SecretApiInterface.java 라는 이름의 API 인터페이스 클래스에 있습니다.
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
그런 다음 요청에서이 인터페이스로 매개 변수를 전달합니다. 다음 행을 따라 전달합니다. (이 파일은 예를 들어 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());
}
}
경우 Somehow.Magically.getToken()
, 그것은 당신이 어떻게 당신이 그것을 정의에 토큰을 반환하는 메서드 호출까지입니다.
물론 @Header("Blah") String blah
귀하의 경우와 같이 인터페이스 구현에 하나 이상의 주석을 가질 수 있습니다 !
나는 그것도 혼란스럽고 문서 는 그것이 헤더를 대체 한다고 분명히 말하고 있지만 그렇지 않습니다 !
실제로 @Headers("hardcoded_string_of_liited_use")
주석 과 같이 추가됩니다.
도움이 되었기를 바랍니다 ;)