不是新手,这个问题可能很简单。这是一个简单的api接口
public interface ApiRetrofitService {
@GET("territories/url")
@Headers({"Token: XXXXX"})
public Call<List<Territory>> getTerritories();
@GET("territories/url/current")
@Headers({"Token: XXXXX"})
public Call<Territory> getCurrentTerritory();
}
我想从静态资源文件中加载标头,为简单起见,我想将标头值存储在<string name="token">XXXXX</string>
中的strings.xml中。有没有一种方法可以从ApiRetrofitService标头中的strings.xml添加值。我希望这样的东西:
public interface ApiRetrofitService {
@GET("territories/url")
@Headers({"Token:" + R.strings.token})
public Call<List<Territory>> getTerritories();
@GET("territories/url/current")
@Headers({"Token:" + R.strings.token})
public Call<Territory> getCurrentTerritory();
}
并且通常,我该如何解决需要为不同的构建风味添加不同的标题的问题?谢谢
为时已晚,但可能会帮助别人。
您可以使用动态标头,例如
@GET("territories/url/current")
public Call<Territory> getCurrentTerritory(@Header("Token") String token);
以及当调用get方法时
if (BuildConfig.DEBUG) {
//call getCurrentTerritory(//debug string token)
}else{
//call getCurrentTerritory(//production string token)
}