我想发送一个带有一个实际参数的简单 POST 请求:
@POST("/token")
@FormUrlEncoded
void extendSession(@Field("refresh_token")final String refreshToken);
但这个请求还应该发送服务器请求的一些常量值,例如client_id
、client_secret
和grant_type
,这些都是常量,不应该成为应用程序 API 的一部分。
执行此操作的最佳方法是什么?
最佳答案
这取决于您的方法。如果您有常量,则可以构建调用所需值的默认映射。 @FieldMap
将适合构建包含所有必填字段的 map
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);
关于java - Retrofit:如何发送带有常量字段的 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697054/