所以,我正在尝试发出如下所示的REST请求:https://api.digitalocean.com/droplets/?client_id=[client_id]&api_key=[api_key]
其中https://api.digitalocean.com
是端点,@GET("/droplets/")
是注释。我希望自动添加结束位,因为它对于我发出的任何API请求都是相同的,并且将它添加到每个请求会很麻烦。有没有办法做到这一点?
答案 0 :(得分:7)
这是我的Retrofit 2的拦截器:
private static class AuthInterceptor implements Interceptor {
private String mApiKey;
public AuthInterceptor(String apiKey) {
mApiKey = apiKey;
}
@Override
public Response intercept(Chain chain) throws IOException {
HttpUrl url = chain.request().httpUrl()
.newBuilder()
.addQueryParameter("api_key", mApiKey)
.build();
Request request = chain.request().newBuilder().url(url).build();
return chain.proceed(request);
}
}
答案 1 :(得分:4)
将RequestInterceptor
实例传递给添加查询参数的RestAdapter.Builder
。
Retrofit将为每个API调用调用请求拦截器,允许您附加查询参数或替换路径元素。
在此回调中,您可以为每个请求附加clientId
和apiKey
个查询参数。