如何使用翻新功能为不同的构建风格添加不同的标题

问题描述 投票:2回答:1

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

并且通常,我该如何解决需要为不同的构建风味添加不同的标题的问题?谢谢

retrofit retrofit2
1个回答
1
投票

为时已晚,但可能会帮助别人。

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

    @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)
}
© www.soinside.com 2019 - 2024. All rights reserved.