Я использую библиотеку Square's Retrofit для коротких сетевых вызовов. Есть несколько частей данных, которые я включаю в качестве параметров @Query
по каждому запросу. Как так:Есть ли способ установить параметр базового запроса для включения в каждый запрос, сделанный с помощью библиотеки Square's Retrofit?
@GET("/thingOne.php")
void thingOne(
@Query("app_version") String appVersion,
@Query("device_type") String deviceType,
Callback<Map<String,Object>> callback
);
@GET("/thingTwo.php")
void thingTwo(
@Query("app_version") String appVersion,
@Query("device_type") String deviceType,
Callback<Map<String,Object>> callback
);
Это громоздко, чтобы определить appVersion
и deviceType
для каждой конечной точки, описанной в Interface
. Есть ли способ установить базовый набор параметров, который должен быть включен в каждый запрос? Что-то похожее на то, как мы устанавливаем общий Authorization Header
?
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer("...")
.setRequestHeaders(new RequestHeaders() {
@Override
public List<Header> get() {
List<Header> headers = new ArrayList<Header>();
Header authHeader = new Header(
"Authorization", "Bearer " + token);
headers.add(authHeader);
}
return headers;
}
})
.build();
this.service = restAdapter.create(ClientInterface.class);
является [это] (http://developer.android.com/reference/org/apache /http/HttpRequestInterceptor.html), о чем вы говорите? Кажется, я не могу найти ссылку на класс под названием RequestInterceptor. Или в RequestFacade. А RestAdapter не имеет метода 'setRequestInterceptor'. Можете ли вы предоставить более подробную информацию? –
У вас должна быть старая версия Модернизации. Если вы обновите его до версии 1.1.1, вы увидите их. http://square.github.io/retrofit/javadoc/retrofit/RequestInterceptor.html – Erich
@kdubb: Как мне это сделать для тела? У меня есть POST, которые принимают полезную нагрузку json. Благодаря! – dannyroa