问题
使用Retrofit2一般都是针对于一baseURL,其它接口都是拼接不同的参数如get/photo
,search?name=xiaohong&&sex=female
,这样的形式。但是一些请求此时又要访问不同的url只能重新生成一个Retrofit2
实例,实质上还有一种形式去处理,就是使用@url注解。
解决方案
public interface UserService {
@GET
public Call<ResponseBody> profilePicture(@Url String url);
}
上面的@url 可以接收https://s3.amazon.com/profile-picture/path
,所以使用如下
Retrofit retrofit = Retrofit.Builder()
.baseUrl("https://your.api.url/");
.build();
UserService service = retrofit.create(UserService.class);
service.profilePicture("https://s3.amazon.com/profile-picture/path");
// request url results in:
// https://s3.amazon.com/profile-picture/path
参考链接
Retrofit 2 - Dynamic URL
Retrofit 2 — How to Use Dynamic Urls for Requests