হ্যাঁ, আপনি তাদের রানটাইমে পাস করতে পারেন। প্রকৃতপক্ষে, আপনি যেমন টাইপ করেছেন ঠিক তেমনই। এটি আপনার এপিআই ইন্টারফেস ক্লাসে থাকবে, নাম সিক্রেটএপিআইন্টারনেস.জভা নামে
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
তারপরে আপনি এই অনুরোধটি থেকে এই ইন্টারফেসে প্যারামিটারগুলি পাস করুন, সেই লাইনের পাশাপাশি কিছু: (এই ফাইলটি সিক্রেটথিংআরকুইস্ট.জভা উদাহরণস্বরূপ হবে )
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")
টীকা হিসাবে যুক্ত করা হয়
আশাকরি এটা সাহায্য করবে ;)