android - 如何正确地将变量放入 url。改造 2.0
问题描述
我正在尝试以这种方式放置 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>
但是我在更换时遇到错误。并且知道如何解决它。
这是错误消息:
java.lang.IllegalArgumentException: URL query string "dir=userIcons/{id}" must not have replace block. For dynamic query parameters use @Query.
解决方案
由于您不能在查询中使用替换块(无论您随后如何尝试替换它, using@Path
也无法使用它),因此可以采用以下方法。您可以从传递给@POST
注释的路径中删除查询部分:
@Headers("Content-type: multipart/form-data")
@POST("/files/upload")
fun upload(@Query("dir", encoded = true) id: String,
@Body encodedImg: String): Call<IconModel>
然后你必须在调用 API 时传入查询参数的整个值:
val call = api.upload("userIcons/foo", "bar")
这将导致这样的调用,我相信这就是您想要的:
/files/upload?dir=userIcons/foo
推荐阅读
- html - 视频高度最大到屏幕高度
- c# - 在 Datagrid 中显示 Excel 中的数据
- javascript - 如何在反应中的CSelect元素中显示从api获取的数组
- c++ - 洗牌向量的最快“简单”方式
- android - 设置意图在 SAMSUMG M51 中不起作用
- r - 将数据框 Group BY 代码放入 R 中的函数中
- virtualbox - VirtualBox 6.1 在运行几分钟后自动重启我的主机
- redis - Vertx 4 - Redis 6 问题
- javascript - 当用户单击另一个链接(如分步菜单)时,如何添加另一个检查类以替换当前活动类?
- javascript - 我想检索反应表排序的数据并将其传递给后端是否可能。因为我是新手,所以我想知道我们该怎么做