遇到的问题
平时使用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}")
即可。