हां, आप उन्हें रनटाइम में पास कर सकते हैं। तथ्य की बात के रूप में, बहुत ज्यादा बिल्कुल के रूप में आप इसे टाइप किया। यह आपके API इंटरफ़ेस क्लास में होगा, जिसका नाम SecretApiInterface.java है
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")एनोटेशन के साथ जोड़ा जाता है
उम्मीद है की यह मदद करेगा ;)