直接代码
类一
public class Okhttp3Utils { private static OkHttpClient mOkHttpClient; public static OkHttpClient getOkHttpClient(){ if(null==mOkHttpClient){ mOkHttpClient=new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(30,TimeUnit.SECONDS) .writeTimeout(30,TimeUnit.SECONDS) .build(); } return mOkHttpClient; } } 类二public abstract class RetrofitUtils { private static final String Api_Server="http://xxxxxxxxx:8080/"; private static Retrofit mRetrofit; private static OkHttpClient nOkHttpClient; public static Retrofit getRetrofit(){ if(null==mRetrofit){ if(null==nOkHttpClient){ nOkHttpClient=Okhttp3Utils.getOkHttpClient(); } mRetrofit=new Retrofit.Builder() .baseUrl(Api_Server)//设置服务器路径 .addConverterFactory(GsonConverterFactory.create())//添加转化库,默认是Gson .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//添加回调库,采用RxJava .client(nOkHttpClient)//设置使用okhttp网络请求 .build(); } return mRetrofit; } } 类三public class NetWorks extends RetrofitUtils { //创建实现接口调用 protected static final NetService service = getRetrofit().create(NetService.class); private interface NetService{ //POST请求 @FormUrlEncoded @POST("login/urls") Observable<Verification> getVerfcationCodePost(@Field("tel") String tel,@Field("password") String pass); //POST请求 @FormUrlEncoded @POST("login/urls") Observable<Verification> getVerfcationCodePostMap(@FieldMap Map<String, String> map); //GET请求 @GET("login/urls") Observable<Verification> getVerfcationGet(@Query("tel") String tel, @Query("password") String pass); //GET请求,设置缓存 @Headers("Cache-Control: public," + CACHE_CONTROL_CACHE) @GET("login/urls") Observable<Verification> getVerfcationGetCache(@Query("tel") String tel, @Query("password") String pass); //POST测试 @FormUrlEncoded @POST("api/out/directBuy.php?act=DirectBuy") Observable<GoodsBean> getVerfcationCodePostMap2(@FieldMap Map<String, String> map); } //POST 测试 public static void VisitCodePostMapText(Map<String,String> map, Observer<GoodsBean> observer){ setSubscribe(service.getVerfcationCodePostMap2(map),observer); } //POST 请求 public static void VisitCodePost(String tel, String password, Observer<Verification> observer){ setSubscribe(service.getVerfcationCodePost(tel,password),observer); } //POST 请求参数以map传入 public static void VisitCodePostMap(Map<String,String> map, Observer<Verification> observer){ setSubscribe(service.getVerfcationCodePostMap(map),observer); } //GET 请求设置缓冲 public static void VisitCodeGetCache(String tel, String password, Observer<Verification> observer){ setSubscribe(service.getVerfcationGetCache(tel,password),observer); } //GET 请求 public static void VisitCodeGET(String tel, String password, Observer<Verification> observer){ setSubscribe(service.getVerfcationGet(tel,password),observer); } public static <T> void setSubscribe(Observable<T> observable, Observer<T> observer){ observable.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.newThread())//子线程访问 .subscribeOn(Schedulers.newThread())//回调到主线程 .subscribe(observer); } } 类四 Activity直接掉用private void text(){ Map<String, String> jsonMap = new HashMap<>(); jsonMap.put("u", "a"); jsonMap.put("p", "b"); jsonMap.put("id", "97"); NetWorks.VisitCodePostMapText(jsonMap, new Observer<GoodsBean>() { @Override public void onCompleted() { Log.d("Main2Activity", "==onCompleted=="); } @Override public void onError(Throwable e) { Log.d("Main2Activity", "==onError=="+e.toString()); } @Override public void onNext(GoodsBean goodsBean) { Log.d("Main2Activity", "==verification=="+goodsBean.toString()); } }); }