這是你的方法問題。如果你有常量,你可以爲你的調用建立一個默認的地圖值。 @FieldMap
將適用於構建地圖與您的所有必填字段
private void extendSession(String token){
Map params = buildDefaultParams();
params.put("refreshToken", token);
getRestAdapter().create(MyApi.class).extendsSession(params);
}
private Map buildDefaultParams(){
Map defaults = new HashMap();
defaults.put("client_id", CLIENT_ID);
defaults.put("client_secret", CLIENT_SECRET);
defaults.put("grant_type", GRANT_TYPE);
return defaults;
}
/**then you change your interface to this **/
@POST("/token")
@FormUrlEncoded
void extendSession(@FieldMap() Map refreshToken);
這就是我最終做的,雖然它不是一個「優雅」的解決方案。 – 2015-01-01 07:27:01
Github上有一個懸而未決的問題,我也將這個帖子鏈接到那裏。 https://github.com/square/retrofit/issues/951 – 2015-07-28 23:45:17