如何在改进调用中设置url的静态端



我得到了一个改装的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}&amp;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?>

相关内容

  • 没有找到相关文章

最新更新