Retrofit动态地址使用注解@Path ,路径中的/变为%2F

遇到的问题

平时使用Retrofit来实现动态地址时,用的是@Url注解,但是需要传地址时连带baseUrl一起给出,这次使用@Path注解来实现,base地址不变,只需改变后边的地址。

@Multipart
@POST("/{param}")
open fun uploadFile(@Path("param") url: String,@Part multipartBody: MultipartBody.Part): Call<ResponseBody>

使用时会发现访问的地址变为了http://192.168.14.57:8080/%2Fmyfittinglife%2Fuploadfile%2F/全都变为了%2F

解决办法

@Multipart
@POST("/{param}")
open fun uploadFile(@Path(value="param",encoded = true) url: String,@Part multipartBody: MultipartBody.Part): Call<ResponseBody>

将@Path内的value加上encoded=true属性,使用完发现直接报错:No address associated with hostname
@POST("/{param}")改为@POST("{param}")即可。

猜你喜欢

转载自blog.csdn.net/Myfittinglife/article/details/114527047