retrofit2.0 + rxjava2 网络封装框架

retrofit2.0 + rxjava2 网络封装框架。支持请求取消 支持上传下载进度监听

Android 网络编程

详细介绍

NetWatch-Master

retrofit2.0 + rxjava2 网络封装框架

支持请求取消 支持上传下载进度监听

导入

compile 'com.luckyaf:netwatch:1.1.9'

使用


初始化

NetWatch.init(this,"http://xxxx.com")//base url        。addCommonHeaders(commonHeaders)
        .addCommonHeaders(commonHeaders)
        .addCommonParams(commonParams)
        .openOkHttpLog(HttpLoggingInterceptor.Level.NONE)//log  特别多 最好别开
        .openSimpleLog(true)
        //.andSSL() 证书
        .retryOnConnectionFailure(true)//失败重连
        .build();  
          

请求实例 详细例子可根据demo获取

        Map<String,String> header = new HashMap<>();
        header.put("mobileNumber", "18826412577");
        header.put("loginPassword", "123456");
        Map<String,Object> params = new HashMap<>();
        params.put("start", "0");
        params.put("count", "1");
        NetWatch.open(this,"http://api.douban.com/v2/movie/top250")
                .headers(header)//可以没有
                .tag(this)//添加标签 可用于取消请求
                .get(params, new CommonCallBack() {
                    @Override
                    public void onCancel() {}
                    @Override
                    public void onComplete() {}
                    @Override
                    public void onError(Throwable e) {}
                    @Override
                    public void onNext(ResponseBody responseBody) {
                        try {
                            txt_result.setText(responseBody.string());
                        }catch (IOException e){
                            //do nothing
                        }
                    }
                });

新增链式调用 详细例子可根据demo获取

        Map<String, Object> header = new HashMap<>();
        header.put("mobileNumber", "18826412577");
        header.put("loginPassword", "123456");
        Map<String, Object> params = new HashMap<>();
        params.put("start", "0");
        params.put("count", "1");
        NetWatch.get("http://api.douban.com/v2/movie/top250")
                .headers(header)
                .params(params)
                .tag(this)
                .onStart(new StartCallBack() {
                    @Override
                    public void onStart() {

                    }
                })//可以没有
                .onCancel(new CancelCallBack() {
                    @Override
                    public void onCancel() {

                    }
                })//可以没有
                .onError(new ErrorCallBack() {
                    @Override
                    public void onError(Throwable error) {

                    }
                })//可以没有
                .onSuccess(new SuccessCallBack() {
                    @Override
                    public void onSuccess(ResponseBody responseBody) {
                        try {
                            txt_result.setText(responseBody.string());
                        } catch (IOException e) {
                            //do nothing
                        }
                    }
                })//可以没有
                .run();

取消请求

  //将取消所有有该tag的请求 若想取消单个url 可以在tag后加上要取消的url
    NetWatch.cancelRequest(tag)

TODO:

  • 支持https
  • 支持 cache
  • 支持临时设置超时等选项
  • 支持更个性化的调用
  • 文件断点下载
推荐源码