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);
}

retrofit+rxjava封装的更多相关文章

  1. Android MVP开发模式及Retrofit + RxJava封装

    代码已上传到Github,因为接口都是模拟无法进行测试,明白大概的逻辑就行了! 欢迎浏览我的博客--https://pushy.site 1. MVP模式 1.1 介绍 如果熟悉MVP模式架构的话,对 ...

  2. 基于Retrofit+RxJava的Android分层网络请求框架

    目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...

  3. Rxjava +Retrofit 你需要掌握的几个技巧,Retrofit缓存,RxJava封装,统一对有无网络处理,异常处理, 返回结果问题

    本文出处 :Tamic 文/ http://blog.csdn.net/sk719887916/article/details/52132106 Rxjava +Rterofit 需要掌握的几个技巧 ...

  4. Android RxJava+Retrofit完美封装

    作者简介 本篇来自 小河马 的投稿,分享了自己是如何进行 RxJava+Retrofit 的封装.本文的技术点自然没话说,另外对于这种模块化的思路,希望能帮助到大家.最后提前祝大家周末愉快以及圣诞快乐 ...

  5. 结合Retrofit,RxJava,Okhttp,FastJson的网络框架RRO

    Retrofit以其灵活的调用形式, 强大的扩展性著称. 随着RxAndroid的推出, Retrofit这样的可插拔式的网络框架因其可以灵活兼容各种数据解析器, 回调形式(主要还是RxJava啦)而 ...

  6. 设计模式笔记之四:MVP+Retrofit+RxJava组合使用

    本博客转自郭霖公众号:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236866&idx=1&sn=da66 ...

  7. 一步步搭建Retrofit+RxJava+MVP网络请求框架(一)

    首先,展示一下封装好之后的项目的层级结构. 1.先创建一个RetrofitApiService.java package com.xdw.retrofitrxmvpdemo.http; import ...

  8. Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)

    csdn :码小白 原文地址: http://blog.csdn.net/sk719887916/article/details/51958010 RetrofitClient 基于Retrofit2 ...

  9. Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇

    https://www.jianshu.com/p/5bc866b9cbb9 最近因为手头上的工作做完了,比较闲,想着做一些优化.看到以前用的那一套网络框架添加一个请求比较麻烦,并且比较难用,所以想改 ...

随机推荐

  1. input控制输入保留一位小数

    function zlip(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 obj.val ...

  2. 11.20 正则表达式 断言(?=exp)

    今天看源代码,研究了一下qz写的这个方法: // 添加逗号分隔,返回为字符串 comma: function(length) { ) length = ; var source = ('' + thi ...

  3. LAB6 SOAP

    有web服务的,需要Deploy一下才能跑 通过ls看所有文件的所在地,cd进入对应文件夹,才可以编译 javac 编译,Java是执行 URL必须是WSDL文件点进去里面的:http://local ...

  4. ASP.Net的工作线程与请求队列

    当 ASP.NET 接收针对页的请求时,它从线程池中提取一个线程并将请求分配给该线程. 一个普通的(或同步的)页在该请求期间保留线程,从而防止该线程用于处理其他请求.如果一个同步请求成为 I/O bo ...

  5. Integer 函数传参实现值交换

    import java.lang.reflect.Field; public class MainClass { public static void main(String[] args) { In ...

  6. CVTE C/C++开发工程师笔试题(一)

    问题描述: 字符串组装. 现在需要将一些数据格式不同的数据组装成一个char型字符串输出,数据来源包含一个char型的字符串,一个short型的16进制数据: 举例: 假若定义如下2个变量: 1.ch ...

  7. idea中springboot项目设置热部署

    技术交流群:816227112 File-Settings-Compiler-Build Project automatically ctrl + shift + alt + /然后选择Registr ...

  8. spark 线性回归算法(scala)

    构建Maven项目,托管jar包 数据格式 //0.fp_nid,1.nsr_id,2.gf_id,2.hydm,3.djzclx_dm,4.kydjrq,5.xgrq,6.je,7.se,8.jsh ...

  9. swoole和workerman

    作者:韩天峰链接:https://www.zhihu.com/question/47994137/answer/131700752来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  10. ORM学员管理系统

    1.使用MySQL自己创建一个数据库,以下例为例 CREATE DATABASE orm DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 2.在项目的set ...