我得到了一个改装的api接口,但如何根据参数正确设置它
@GET("/users/profile/{User}?age={Age}&api_key=randomkey")
suspend fun enableVoice(
@Path("User") user: String?,
@Query("age") age: String?
): Response<UserResponse?>
我得到了这个错误,不知道如何正确设置api端
java.lang.IllegalArgumentException: URL query string "age={Age}&api_key=randomkey" must not have replace block. For dynamic query parameters use @Query.
请告诉我如何使它运行
根据这个答案,我认为你需要做这样的事情:
@GET("/users/profile/{User}")
suspend fun enableVoice(
@Path("User") user: String?,
@Query("age") age: String?,
@Query("api_key") key: String?,
): Response<UserResponse?>
也可以使用@QueryMap
,您可以在其中提供键值对的映射。
@GET("/users/profile/{User}")
suspend fun enableVoice(
@Path("User") user: String?,
@QueryMap queryParams: Map<String, String>
): Response<UserResponse?>
您不需要在URL中显式添加查询部分。将它与@Query注释一起传递给方法,将自动将其添加到请求的最终URL中。所以你的请求应该是
@GET("/users/profile/{User}")
suspend fun enableVoice(
@Path("User") user: String?,
@Query("age") age: String?,
@Query("api_key") key: String?
): Response<UserResponse?>