Skip to content

Rxjava2和Retrofit2网络库的封装,支持文件下载监听,单文件/多文件上传监听,支持https

Notifications You must be signed in to change notification settings

liu-mushan/RetrofitClient

Repository files navigation

RetrofitClient

Rxjava2和Retrofit2网络库的封装,**支持文件下载监听,单文件/多文件上传监听,**支持https。

把项目中网络层抽离开来做了一个封装。这个库的特点

  • 没法直接拿去用,但是给大家一个示例去封装网络层。把项目拉下来稍微改一下就能直接放到自己的项目中
  • 使用Rxjava2与Retrofit2封装
  • 完全分层

如果对大家有帮助,麻烦帮忙star一下

 public <S> S createServer(Class<S> serverClass, String baseUrl) {
        Retrofit.Builder builder = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create());

        okHttpClient = getOkHttpClient();
        Retrofit retrofit = builder.client(okHttpClient).build();
        return retrofit.create(serverClass);
    }

    public <S> S createServerInBackgroundThread(Class<S> serverClass, String baseUrl) {
        Retrofit.Builder builder = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .callbackExecutor(backgroundThreadExecutor)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create());

        okHttpClient = getOkHttpClient();
        Retrofit retrofit = builder.client(okHttpClient).build();
        return retrofit.create(serverClass);
    }

public Flowable<Object> downLoadFile(String url, String savePath, String fileName) {
        if (TextUtils.isEmpty(savePath)) {
            savePath = Utils.getDefaultDownLoadPath();
        }
        if (fileName == null || fileName.trim().equals("")) {
            fileName = Utils.getDefaultDownLoadFileName(url);
        }

        //compose操作参数
        DownLoadTransformer downLoadTransformer = new DownLoadTransformer(savePath, fileName);
        return createServer(DownloadInterface.class, DnsAppApi.getBaseUrl(Environment.ApiType.STOCKS))
                .startDownLoad(url)
                .compose(downLoadTransformer)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread());
    }

About

Rxjava2和Retrofit2网络库的封装,支持文件下载监听,单文件/多文件上传监听,支持https

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages