26
我使用Square的Retrofit庫進行短期網絡調用。我在每個請求中都包含幾條數據,作爲@Query
params。像這樣:有沒有一種方法可以設置基本請求參數以包含在使用Square的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'方法。你能提供更多的細節嗎? –
您必須擁有較舊版本的Retrofit。如果您將其更新到版本1.1.1,則應該看到它們。 http://square.github.io/retrofit/javadoc/retrofit/RequestInterceptor.html – Erich
@kdubb:我如何爲身體做這件事?我有一個接受json負載的POST。謝謝! – dannyroa