美文网首页
OkGo请求封装

OkGo请求封装

作者: 我想放假休息 | 来源:发表于2019-12-07 00:04 被阅读0次

    封装的请求工具类

    package com.exam_assistant.util;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.util.Log;
    
    import com.exam_assistant.activity.SynchronizationActivity;
    import com.lzy.okgo.OkGo;
    import com.lzy.okgo.callback.BitmapCallback;
    import com.lzy.okgo.callback.FileCallback;
    import com.lzy.okgo.callback.StringCallback;
    import com.lzy.okgo.model.HttpParams;
    import com.lzy.okgo.model.Progress;
    import com.lzy.okgo.model.Response;
    
    import java.io.File;
    
    public class OkGoHttpUtils {
        private Context mContext;
        private HttpCallBackString doStringCallBack;
        private HttpCallBackFile doFileCallBack;
        private HttpCallBackBitmap doBitmapCallBack;
    
        /*
         * get请求
         * */
        public void doGetHttpString(final Context context, String url, HttpCallBackString callBack) {
            mContext = context;
            doStringCallBack = callBack;
            OkGo.<String>get(url)
                    .retryCount(0)
                    .execute(new StringCallback() {
                        @Override
                        public void onSuccess(Response<String> response) {
                            doStringCallBack.doStringCallBack(context,true, response.body() + "");
                        }
                        @Override
                        public void onError(Response<String> response) {
                            doStringCallBack.doStringCallBack(context,false,  "");
                        }
                    });
        }
        /*
         * post请求
         * */
        public void doPostHttpString(final Context context, String url, HttpParams params, HttpCallBackString callBack) {
            mContext = context;
            doStringCallBack = callBack;
            OkGo.<String>post(url)
                    .retryCount(0)
                    .params(params)
                    .execute(new StringCallback() {
                        @Override
                        public void onSuccess(Response<String> response) {
                            doStringCallBack.doStringCallBack(context,true, response.body()+"");
                        }
                        @Override
                        public void onError(Response<String> response) {
                            doStringCallBack.doStringCallBack(context,false, "");
                        }
                    });
        }
        /**
         * get下载File文件
         */
        public void doGetHttpFile(final Context context, String url, HttpCallBackFile callBack) {
            mContext = context;
            doFileCallBack = callBack;
            OkGo.<File>get(url)
                    .retryCount(0)
                    .execute(new FileCallback() {
                        @Override
                        public void onSuccess(Response<File> response) {
                            doFileCallBack.doFileCallBack(context,true,response.body());
                        }
                        @Override
                        public void onError(Response<File> response) {
                            doStringCallBack.doStringCallBack(context,false, "");
                        }
                        //progress.fraction获取当前的下载进度
                        @Override
                        public void downloadProgress(Progress progress) {
                            doFileCallBack.downloadProgress(context,true,progress);
                            Log.d("meee",getClass()+":\n"+"progress:"+progress.fraction);
                        }
                    });
        }
    
        public void doGetHttpBitmap(final Context context, String url, HttpCallBackBitmap callBack){
            mContext = context;
            doBitmapCallBack = callBack;
            OkGo.<Bitmap>get(url)
                    .execute(new BitmapCallback() {
                        @Override
                        public void onSuccess(Response<Bitmap> response) {
                            Log.d("meee", getClass() + ":\n" + "onSuccess:" + response.body().getHeight());
                            doBitmapCallBack.doBitmapCallBack(context,true,response.body());
                        }
                        @Override
                        public void onError(Response<Bitmap> response) {
                            doStringCallBack.doStringCallBack(context,false, "");
                        }
                    });
        }
    
    
        public interface HttpCallBackString {
            void doStringCallBack(Context context, boolean success, String message);
        }
    
        public interface HttpCallBackBitmap {
            void doBitmapCallBack(Context context, boolean success, Bitmap bitmap);
        }
    
        public interface HttpCallBackFile {
            void doFileCallBack(Context context, boolean success, File file);
            void downloadProgress(Context context, boolean success, Progress progress);
        }
    
    }
    

    使用方式

            new OkGoHttpUtils().doGetHttpString(getContext(), url, new OkGoHttpUtils.HttpCallBackString() {
                @Override
                public void doStringCallBack(Context context, boolean success, String message) {
    
                }
            });
    

    相关文章

      网友评论

          本文标题:OkGo请求封装

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