【问题标题】:How to add different headers for different build flavors using Retrofit如何使用 Retrofit 为不同的构建风格添加不同的标题
【发布时间】:2019-10-18 04:03:16
【问题描述】:

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

我想从静态资源文件加载标头,为了简单起见,假设我希望将标头值存储在 &lt;string name="token"&gt;XXXXX&lt;/string&gt; 中的 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】:

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

    你可以像这样使用动态标题

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

    【讨论】:

      猜你喜欢
      • 2014-02-13
      • 2015-07-21
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      相关资源
      最近更新 更多