在 url 改造中添加动态值

Add dynamic value in url retrofit

下面有这个URL

URL TO CALL

在我的界面中

@GET("storage/presigned-url?bucketName=files&key=payment-receipt/{fileName}&httpVerb=2&contentType=image/jpeg")
suspend fun fileUploadPathCheque(@Path("fileName") name: String): Response<String>

我想用一些值替换文件名

我将函数调用为

Api.fileUploadPathCheque(UUID.randomUUID().toString().plus(".jpg"))

我得到以下异常

ava.lang.IllegalArgumentException: URL query string "bucketName=files&key=payment-receipt/{fileName}&httpVerb=2&contentType=image/jpeg" must not have replace block. For dynamic query parameters use @Query.

正确的做法是什么?

例外情况是 self-explanatory,您需要为 key 使用查询参数。像

@GET("storage/presigned-url?bucketName=files&httpVerb=2&contentType=image/jpeg")
suspend fun fileUploadPathCheque(@Query("key") name: String): Response<String>`

然后调用它附加 payment-receipt/ 到您传递的参数:

Api.fileUploadPathCheque("payment-receipt/" + UUID.randomUUID().toString().plus(".jpg"))

这应该适合你。