7

そこで、次のような REST リクエストを作成しようとしています。https://api.digitalocean.com/droplets/?client_id=[client_id]&api_key=[api_key]

https://api.digitalocean.comエンドポイントはどこ@GET("/droplets/")にあり、注釈になります。エンド ビットが自動的に追加されることを望みます。なぜなら、それは私が作成するすべての API リクエストで同一であり、各リクエストに追加するのは面倒だからです。それを行う方法はありますか?

4

2 に答える 2

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);
    }
}
于 2015-10-11T12:12:47.773 に答える
4

クエリ パラメータを追加する にRequestInterceptorインスタンスを渡します。RestAdapter.Builder

Retrofit は、すべての API 呼び出しに対してリクエスト インターセプターを呼び出します。これにより、クエリ パラメーターを追加したり、パス要素を置き換えたりすることができます。

clientIdこのコールバックでは、すべてのリクエストにおよびapiKeyクエリ パラメータを追加できます。

于 2014-03-09T00:53:49.200 に答える