新手秒学OkHttp+Retrofit+Rxjava框架,适合新手

上一篇我们讲到OkHttp+Retrofit,这篇就直接实现了:

https://blog.csdn.net/fayangzhou/article/details/80859318

这一批我们讲讲简单的OkHttp+Retrofit+Rxjava框架,如果要重点学习Rxjava的话就自己去找学习资料吧,字数太多自己看的都难受。

OKhttp+Retrofit+Rxjava就是一个网路框架+接口回调+异步执行的框架

1、加入各种库

    implementation 'com.squareup.okhttp3:okhttp:3.4.1'//OkHttp库
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'//gson库
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'//retrofit库
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0'//rxjava库
    implementation 'io.reactivex:rxandroid:1.2.1'//rxandroid库

2、创建代理接口,实现header配置,比如使用Post

public interface RxjavaNetInterfaces {
    /**
     * 登录
     * @param param //键值对,参数
     * @return
     */
    @POST("userLogin")//配置header
    @FormUrlEncoded
    Observable<ResponseBody> getLogin(@FieldMap Map<String,String> param);//这里我们采用Observable的Rxjava模式
}
3、设置具体实现,没有做封装,只是简单的能用就行
//设置OkHttpClient超时配置
int CONNECT_TIMEOUT = 10;
int READ_TIMEOUT = 20;
int WRITE_TIMEOUT = 20;
OkHttpClient builder = new OkHttpClient();
builder.newBuilder().connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS); // 连接超时时间阈值
builder.newBuilder().readTimeout(READ_TIMEOUT, TimeUnit.SECONDS);   // 数据获取时间阈值
builder.newBuilder().writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS);  // 写数据超时时间阈值

//创建Retrofit
Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://20w908s049.51mypc.cn:57626/Canteen/")
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//提供Rxjava支持
        .client(builder)//载入OkHttpClient的配置
        .build();
 
//创建接口
RxjavaNetInterfaces rxjavaNetInterfaces = retrofit.create(RxjavaNetInterfaces.class);
Map<String, String> params = new HashMap<>();
params.put("Uphone", "33");
params.put("Upassword", "33");
params.put("Uadmin", "false");
 
//使用接口代理
Observable<ResponseBody> observable = rxjavaNetInterfaces.getLogin(params);
observable.subscribeOn(Schedulers.io())//被调用者io线程
        .observeOn(AndroidSchedulers.mainThread())//调用者主线程
        .subscribe(new Subscriber<ResponseBody>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(ResponseBody responseBody) {
                try {
                    Log.e("123", responseBody.string());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
OK,完成,简单明了,跟以前的哪些用法没多大区别,那么用这个有啥好处呢?
OkHttp的优点:
    支持SPDY, 可以合并多个到同一个主机的请,使用连接池技术减少请求的延迟(如果SPDY是可用的话) ,
 
                   使用GZIP压缩减少 传输 的数据量, 缓存响应避免重复的网络请求、拦截器等等。
Retrofit的优点:
  • 编程思想:减少解耦,降低耦合,让我的接口开发灵活,不同api之间互相不干扰,

  • 代码风格:使用注解方式,代码简洁,易懂,易上手

  • 设计思想:采用多种设计模式,开发构建简便!

Rxjava的优点:

响应式编程
观察者设计模式-----接口回调
一个实现异步操作的库 -----异步执行

总结就是OKhttp+Retrofit+Rxjava就是一个网路框架+接口回调+异步执行的框架

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值