Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在翻新@Header中,属性必须为常量_Java_Android_Header_Retrofit2 - Fatal编程技术网

Java 在翻新@Header中,属性必须为常量

Java 在翻新@Header中,属性必须为常量,java,android,header,retrofit2,Java,Android,Header,Retrofit2,我想在改型api中为每个POST请求传递一个头。因为我有很多方法,所以我不能复制/粘贴每个方法的标题信息 public interface ApiInterface { String[] header = {"Accept:application/json", "apiKey:12345", "Content-Type:application/json"}; @Headers(heade

我想在改型api中为每个POST请求传递一个头。因为我有很多方法,所以我不能复制/粘贴每个方法的标题信息

public interface ApiInterface {
    String[] header = {"Accept:application/json",
                       "apiKey:12345",
                       "Content-Type:application/json"};

    @Headers(header)
    @POST("signup?")
    Call<SignupResponse> createUser(@Body SignupData signupData);

    @Headers(header)
    @POST("another")
    ....
}
公共接口{
字符串[]头={“接受:应用程序/json”,
“apiKey:12345”,
“内容类型:application/json”};
@标题(标题)
@帖子(“注册?”)
调用createUser(@Body signupdatea signupdatea);
@标题(标题)
@职位(“其他”)
....
}
@header中的header变量创建此错误:

属性必须是常量

如何解决此问题?

使用:

@Headers({"Accept:application/json",
         "apiKey:12345",
         "Content-Type:application/json"})
@POST("another")
请参阅的“标题操作”部分。

试试这个

@Headers({"Accept:application/json",
            "apiKey:12345",
            "Content-Type:application/json"})
@POST("signup?")
    Call<SignupResponse> createUser(@Body SignupData signupData);
@Headers({“Accept:application/json”,
“apiKey:12345”,
“内容类型:应用程序/json”})
@帖子(“注册?”)
调用createUser(@Body signupdatea signupdatea);

实际上,我希望避免在每个方法的
@Headers()
中写入3行。可能吗?没有其他选择。如果删除、
Accept
Content Type
部分,是否有问题?只需尝试使用
@Header()
,它需要
String
而不是
String[]
使用(“apiKey:12345”)。还有,你为什么不试试改型呢?解决方案就是@Shashanth推荐的链接。我应该使用HttpClient拦截器来添加头来改进obj。