如何使用Retrofit为不同的构建风格添加不同的标头

时间:2016-05-24 09:57:44

标签: retrofit retrofit2

我是改造的新手,这个问题可能是微不足道的。这是一个简单的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();
 }

我想从静态资源文件中加载Headers,为了保持简单,我想要将标题值存储在<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();
}

总的来说,我如何解决我需要为不同的构建风格添加不同标题的问题?感谢

1 个答案:

答案 0 :(得分:0)

为时已晚,但可能会对其他人有所帮助。

您可以使用动态标头,例如

    @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)
}