封装的请求工具类
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) {
}
});
网友评论