美文网首页
Android网络框架之Retrofit+RxJava+OkHt

Android网络框架之Retrofit+RxJava+OkHt

作者: 赵庆峰_ | 来源:发表于2018-10-15 15:05 被阅读16次

    自己简单封装的网络请求框架,适合快速开发

    build.gradle文件:

    implementation 'com.squareup.retrofit2:retrofit:2.2.0'
    implementation 'com.squareup.okhttp3:okhttp:3.3.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
    // 引入请求适配器
    implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0-RC3'
    // 引入RxAndroid适应Android开发需求
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.google.code.gson:gson:2.8.2'
    

    Retrofit的管理类:

    private static ReaderApi instance;
    private RetrofitService service;
    
    /**
     * 请求超时时间
     */
    private static final int DEFAULT_TIME_OUT = 50000;
    
    public ReaderApi() {
        // 创建 OKHttpClient
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.connectTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS);//连接超时时间
        builder.writeTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS);//写操作 超时时间
        builder.readTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS);//读操作超时时间
    
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("网络请求BaseUrl")
                .client(builder.build())
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();
        service = retrofit.create(RetrofitService.class);
    }
    
    public static ReaderApi getInstance() {
        if (null == instance) {
            instance = new ReaderApi();
        }
        return instance;
    }
    
    public Observable<"这里是返回的JsonBean"> getHttpInfo("这里是传参") {
        return service.getHttpInfo("这里是传参");
    }
    

    RetrofitService:

    @FormUrlEncoded
    @POST("网络请求url")
    Observable<"这里是返回的JsonBean"> getHttpInfo(@Field("post请求key值") String "这里是传参");
    

    调用:

        ReaderApi.getInstance()
                .getHttpInfo("这里是传参")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<MessageBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {
    
                    }
    
                    @Override
                    public void onNext(MessageBean value) {
                   
                    }
    
                    @Override
                    public void onError(Throwable e) {
                     
                    }
    
                    @Override
                    public void onComplete() {
    
                    }
                });
    

    可以在此基础上进行进一步封装。

    相关文章

      网友评论

          本文标题:Android网络框架之Retrofit+RxJava+OkHt

          本文链接:https://www.haomeiwen.com/subject/wlufzftx.html