请求中的改造和常量参数
retrofit and constant parameters in requests
在许多 REST API 中,需要在请求中设置参数 "key"。 IE。 Google 的 YouTube API。
我知道在请求中有使用“@Query”的标准方法,但您应该在每个函数中添加这个“@Query”。
有什么方法可以覆盖方法或 class 添加类似 "setEndpoint" 的东西但对于参数?
如果参数始终设置为相同的值,您可以使用 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 客户端 class as class 成员变量并将参数值传递给需要它的 RestAdapter 方法。
在许多 REST API 中,需要在请求中设置参数 "key"。 IE。 Google 的 YouTube API。 我知道在请求中有使用“@Query”的标准方法,但您应该在每个函数中添加这个“@Query”。 有什么方法可以覆盖方法或 class 添加类似 "setEndpoint" 的东西但对于参数?
如果参数始终设置为相同的值,您可以使用 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 客户端 class as class 成员变量并将参数值传递给需要它的 RestAdapter 方法。