有没有办法设置一个基本请求参数,以包含在使用Square的Retrofit库进行的每个请求中?

我正在使用Square的Retrofit库进行短期网络调用。 我在每个请求中都包含了一些@Query参数的数据。 像这样:

 @GET("/thingOne.php") void thingOne( @Query("app_version") String appVersion, @Query("device_type") String deviceType, Callback<Map> callback ); @GET("/thingTwo.php") void thingTwo( @Query("app_version") String appVersion, @Query("device_type") String deviceType, Callback<Map> callback ); 

Interface概述的每个端点定义appVersiondeviceType非常麻烦。 有没有办法设置每个请求应包含的基本参数集? 类似于我们如何设置通用Authorization Header

 RestAdapter restAdapter = new RestAdapter.Builder() .setServer("...") .setRequestHeaders(new RequestHeaders() { @Override public List
get() { List
headers = new ArrayList
(); Header authHeader = new Header( "Authorization", "Bearer " + token); headers.add(authHeader); } return headers; } }) .build(); this.service = restAdapter.create(ClientInterface.class);

通过向RestAdapter添加自定义RequestInterceptor,可以确保所有请求都具有这些查询参数

 RequestInterceptor requestInterceptor = new RequestInterceptor() { @Override public void intercept(RequestFacade request) { request.addQueryParam("app_version", "Version 1.x"); request.addQueryParam("device_type", "Samsung S4"); } }; restAdapter.setRequestInterceptor(requestInterceptor)