【发布时间】:2017-09-01 03:43:09
【问题描述】:
我正在尝试在使用 Retrofit 时使用拦截器来添加标题。我想我已经以正确的方式创建了我的拦截器,但我不知道应该怎么做才能调用它并将它与我的 GET Retrofit 方法连接起来。
这是我的拦截器:
public class HeaderInterceptor
implements Interceptor {
@Override
public Response intercept(Chain chain)
throws IOException {
Request request = chain.request();
request = request.newBuilder()
.addHeader(Constants.VersionHeader.NAME, Constants.VersionHeader.VALUE)
.addHeader("Authorization", "Bearer " + token)
.addHeader("Origin","MY URL")
.build();
Response response = chain.proceed(request);
return response;
}
}
这是我的界面:
public interface CategoryService {
@GET("/v3/projects/{projectId}/categories/")
Call<ArrayList<Category2>> getProjectCategories(@Path("projectId") String projectId);
}
我也有这个客户端,考虑到我正在使用拦截器,我不知道是否应该再使用它:
public class CategoryClient {
public static final String BASE_URL = "MY URL";
private static Retrofit retrofit = null;
public static Retrofit getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
所以我有这个 GET 方法 getProjectCategories,我在其中传递 projectID 并返回内容。我想知道的是如何使用 Interceptor 调用方法并能够从请求中获取结果。
【问题讨论】:
标签: android retrofit2 interceptor