请求中的改进和常量参数

时间:2015-02-01 14:54:03

标签: java android rest retrofit

在许多REST API中,需要设置参数" key"在请求中。即谷歌的YouTube API。 我知道有标准的使用方式" @ Query"在请求中,但你应该添加这个" @ Query"在每个功能。 有没有办法覆盖方法或类来添加类似" setEndpoint"但对于参数?

1 个答案:

答案 0 :(得分:1)

如果参数始终设置为相同的值,则可以使用RequestInterceptor

RestAdapter restAdapter = new RestAdapter.Builder()
        .setEndpoint(API_END_POINT)
        .setRequestInterceptor(new RequestInterceptor() {
            @Override
            public void intercept(RequestFacade request) {
                request.addQueryParam("api_eky", API_KEY);
            }
        })
        .build();

但是,如果仅为某些请求设置参数,我更喜欢将这些参数保留在服务接口的方法签名中,并将它们作为类成员变量在单例API客户端类中定义,并将参数值传递给RestAdapter方法需要它。