Có, bạn có thể vượt qua chúng trong thời gian chạy. Trên thực tế, hoàn toàn chính xác như bạn đã gõ nó ra. Điều này sẽ nằm trong lớp giao diện API của bạn, có tên là SecretApiInterface.java
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
Sau đó, bạn chuyển các tham số cho giao diện này từ yêu cầu của bạn, một cái gì đó dọc theo những dòng đó: (ví dụ: tệp này sẽ là 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());
}
}
Đâu Somehow.Magically.getToken()
là một lệnh gọi phương thức trả về mã thông báo, tùy thuộc vào bạn ở đâu và cách bạn xác định nó.
Tất nhiên, bạn có thể có nhiều hơn một @Header("Blah") String blah
chú thích trong việc triển khai giao diện, như trong trường hợp của bạn!
Tôi cũng thấy nó khó hiểu, tài liệu nói rõ ràng là nó thay thế tiêu đề, nhưng KHÔNG !
Trên thực tế, nó được thêm vào như với @Headers("hardcoded_string_of_liited_use")
chú thích
Hi vọng điêu nay co ich ;)