public class RetrofitHelper { private static OkHttpClient okHttpClient; private static ServiceAPI serviceAPI; private static ServiceAPI api; static { initOkhttpClient(); } private static OkHttpClient initOkhttpClient() { if (okHttpClient==null){ synchronized (RetrofitHelper.class){ if (okHttpClient==null){ okHttpClient=new OkHttpClient.Builder() .build(); } } } return okHttpClient; } public static ServiceAPI getAPI(){ if (serviceAPI==null){ synchronized (ServiceAPI.class){ if (serviceAPI==null){ api = RetrofitHelper.createAPI(ServiceAPI.class,Api.URl); } } } return api; } /** * * @param clzz * @param url * @param <T> * @return */ public static <T> T createAPI(Class<T> clzz,String url){ Retrofit retrofit=new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); return retrofit.create(clzz); } }
public interface ServiceAPI { //首頁 @GET(Api.HOME) Observable<Home_Bean> home(); //分類 @GET(Api.CLASSIFY) Observable<Classify_Bean>classify(); //分類子列表 @GET(Api.CLASSIFY2) Observable<ClassifyBean2>classify2(@Query("cid")String cid); @GET(Api.PRODUCTLIST) Observable<Productlist_Bean>productlist(@Query("pscid")String pscid); //詳情 @GET(Api.PARTICULARS) Observable<Particulars_Bean>particulars(@Query("pid")String pid,@Query("suorce")String suorce); //添加購物車 @GET(Api.ADDCART) Observable<AddCart_Bean>addcart(@QueryMap Map<String,String>map); //登陸 @GET(Api.LOGIN) Observable<Login_Bean>login(@Query("mobile")String name,@Query("password")String pass); //註冊 @GET(Api.REGISTER) Observable<Register_Bean>register(@Query("mobile")String name,@Query("password")String pass); //訂單列表 @GET(Api.ORDERSLIST) Observable<Indent_Bean>indentlist(@QueryMap Map<String,String>map); }