美文网首页
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