【发布时间】:2020-03-06 10:03:16
【问题描述】:
我想在改造 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")
....
}
@HEADER 中的标头变量会产生此错误:
属性必须是常量
我该如何解决这个问题?
【问题讨论】:
-
去掉
Accept和Content-Type部分有什么问题吗?只需尝试@Header(),它需要String类型而不是String[]使用(“apiKey:12345”)。还有,为什么不试试 Retrofit 的 HttpInterceptor? -
SOLUTION 是@Shashanth 推荐的链接。我应该使用 HttpClient 拦截器来添加标头来改造 obj。
标签: java android header retrofit2