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