我试图以这种方式放置id:
@Headers("Content-type: multipart/form-data")
@POST("/files/upload?dir=userIcons/{id}")
fun upload(@Query("id", encoded = true) id: String,
@Body encodedImg: String) : Call<IconModel>
但我在更换时遇到错误。并且idk如何解决它。
以下是错误消息:
java.lang.IllegalArgumentException: URL query string "dir=userIcons/{id}" must not have replace block. For dynamic query parameters use @Query.
答案 0 :(得分:0)
由于您无法在查询中设置替换块(无论您如何尝试替换它,使用@Path
也不会使用它),这里有&#39; s改为做的方法。您可以从传递给@POST
注释的路径中删除查询部分:
@Headers("Content-type: multipart/form-data")
@POST("/files/upload")
fun upload(@Query("dir", encoded = true) id: String,
@Body encodedImg: String): Call<IconModel>
然后,当您调用API时,您必须传递query参数的整个值:
val call = api.upload("userIcons/foo", "bar")
这将导致这样的调用,我相信这是你想要的:
/files/upload?dir=userIcons/foo