我当前正在使用Android的改造库:https://square.github.io/retrofit/
interface MainApi {
@GET('/api/updateuser')
fun updateUser(
@Query("userId") userId: UserId,
@Nullable @Query("programId") programId: ProgramId?): Observable<UserResponse>
}
但是我遇到一个问题,我需要在GET或POST中添加一个动态变量,例如hobby_x = id
。例如:hobby_12=15
或hobby_35=100
。
如何在翻新库中执行此操作?
答案 0 :(得分:0)
当您具有“动态”查询(未知的查询参数集或未知的查询键名)时,处理它的最简单方法是使用the @QueryMap
annotation。
interface MainApi {
@GET("/api/updateuser")
fun updateUser(
@Query("userId") userId: UserId,
@Nullable @Query("programId") programId: ProgramId?,
@QueryMap Map<String, String> hobbies
): Observable<UserResponse>
}
然后您可以将其称为:
val hobbies = mapOf("hobby_12" to "15")
service.updateUser("foo", null, hobbies)
或
val hobbies = mapOf("hobby_35" to "100")
service.updateUser("foo", null, hobbies)