public class RetrofitUtil {
private final Retrofit mRetrofit;
private final HashMap<String, Object> mServiceMap;
private final String mUrl = Uris.URL;
public RetrofitUtil() {
mRetrofit = new Retrofit.Builder()
.baseUrl(mUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
mServiceMap = new HashMap<>();
}
public <T> T getService(Class<T> cls) {
if (mServiceMap.containsKey(cls.getName())) {
return (T) mServiceMap.get(cls.getName());
}
T service = mRetrofit.create(cls);
mServiceMap.put(cls.getName(), service);
return service;
}
}
【post】//json体
public interface XXXXXService {//键值对
@Multipart
@POST("url")
Call<XXXXBean> XXXXService(@PartMap Map<String,RequestBody> params);
}
public interface XXXService {//有参
@FormUrlEncoded
@POST("url")
Call<XXXBean> XXXXPost(@Field("XXX") String jsonData);
}
public interface XXXService {//无参
@POST("url")
Call<XXXBean> XXXPost();
}
【get】//直接传值
public interface XXXService {
@GET("url")
Call<XXXbBean> XXXService(@Query("参数名1") String 参数名1,
@Query("参数名2") String 参数名2,
@Query("参数名3") String 参数名3);
}
retrofit网络请求自用封装,初略版本。
存稿。