更改API标头中的用户类型或使用变量

时间:2018-01-07 10:44:10

标签: android string retrofit final

我在全局

中声明了一个最终变量

public static final String USERTYPE="customer"

然后我将此变量用作

@POST
@Headers({
        "Content-Type: application/json;charset=utf-8",
        "Accept: application/json;charset=utf-8",
        "Cache-Control: max-age=640000",
        "user-type: " + APIService.STRING
})
Call<ReturnPojo> addpost(@Url String s, @Body Add body);

稍后在我的程序中,我需要更改

USERTYPE="guest"

我试试

1.USERTYPE.replace("customer","guest");

2.String user="customer"
  USERTYPE=user;

我怎样才能做到这一点?或者如何在java中更改最终变量?

2 个答案:

答案 0 :(得分:1)

你不能。您已将USERTYPE声明为final,因此您唯一的选择是使用不同的String。

答案 1 :(得分:0)

在运行时更改标头(Retrofit API)

我们无法更改最终变量,因此我们无法以编程方式更改用户类型。通过复制代码不是很好的做法。但我们可以通过这个来完成,

@POST
Call<ReturnPojo> addpost(@Url String s,
        @Body Add body,
        @Header("user-type") String user_type,
        @Header("Content-Type") String content_type,
        @Header("Accept") String accept,
        @Header("Cache-Control") String cache_controller);

最后,虽然我们调用API只是将数据作为参数传递。