Rxjava Retrofix2 okhttp3网络框架自解
来源:互联网 发布:安卓浏览器查看源码 编辑:程序博客网 时间:2024/06/06 07:07
直接代码
类一
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()); } });}
阅读全文
0 0
- Rxjava Retrofix2 okhttp3网络框架自解
- Retrofit2+OkHttp3+RxJava搭建网络框架
- Retrofit2+OkHttp3+RxJava搭建网络框架
- Retrofit2+OkHttp3+RxJava构建网络框架
- retrofit2+okhttp3+rxjava网络封装
- Android-网络框架01OKHttp3
- 网络请求框架(OKHttp3.0)
- Android网络请求框架----okHttp3
- android 网络框架之okhttp3
- okhttp3的网络请求框架
- 网络请求篇--okhttp3框架
- Android OkHttp3网络请求框架使用入门
- 笔记:Android OkHttp3网络请求框架详解
- Android网络框架OKhttp3学习笔记
- 火热轻量级网络框架okhttp3的使用
- 基于OkHttp3封装网络请求框架
- Rxjava+Retrofit2+Okhttp3
- 初探Okhttp3+Retrofit2+RXJava
- Java集合---ConcurrentHashMap原理分析
- 51Nod 1459 迷宫游戏(Dijkstra)
- HDU 1151 二分图的DAG最小路径覆盖 解题报告
- ajax中的async属性值之同步和异步及同步和异步区别
- 会服系统测试(未完)
- Rxjava Retrofix2 okhttp3网络框架自解
- ACM动态规划总结
- 高通android 7.0短信草稿保存流程
- [POJ](3070)Fibonacci ---矩阵快速幂与斐波那契
- Two Sum
- Android-异步消息处理机制2 -HandlerThread的介绍
- 网页设置锚点
- 好未来:删除公共字符
- #面试题#