android网络请求-Okgo简单封装

作者: 奋斗的犇犇 | 来源:发表于2018-09-06 16:18 被阅读51次

日记:
2018年9月6日:中非合作论坛结束第二天,刘强东性侵案发第4天,距离中秋节还有18天。
未来可期。

    **
    * Created by Administrator on 2017/9/6 0006.
   *okgo网络请求封装方法。
    */

public class OkgoUtils {
/**
 * okgo 的GET请求
 *
 * @param requestCode        标识码  用于标识具体的网络请求
 * @param url                请求的url
 * @param param              请求的参数
 * @param tag                tag用于标识和取消网络请求
 * @param okGoUtilsInterFace 接口
 */
public static void GET(final int requestCode, String url, Map<String, String> param, Object tag, final OkGoUtilsInterFace okGoUtilsInterFace) {
    if (NetworkUtils.isConnected()) {
        OkGo.<String>get(url)
                .tag(tag)
                .params(param)
                .headers("Content-Type", "application/json; charset=utf-8")
                .execute(new StringCallback() {
                    @Override
                    public void onStart(Request<String, ? extends Request> request) {
                        super.onStart(request);
                        okGoUtilsInterFace.onStart(request);
                    }
                    @Override
                    public void onSuccess(Response<String> response) {
                        Log.i("执行了","执行了");
                        okGoUtilsInterFace.onSuccess(response, requestCode);
                    }
                    @Override
                    public void onError(Response<String> response) {
                        super.onError(response);
                        okGoUtilsInterFace.Error(response);
                    }
                    @Override
                    public void onFinish() {
                        super.onFinish();
                        okGoUtilsInterFace.onFinsh();
                    }
                });

    } else {
        okGoUtilsInterFace.onNetWorkError();
    }
}
/*
* 多个文件对一个一个key,同时上传
* */
public static void fileonemorepost(final int requestCode, String url, List<File> files, Object tag, final  OkGoUtilsInterFace okgoUtilsInterFace){
     OkGo.<String>post(url)
             .tag(tag)
             .addFileParams("files",files)
             .execute(new StringCallback() {
                 @Override
                 public void onSuccess(Response<String> response) {
                     okgoUtilsInterFace.onSuccess(response,requestCode);
                 }
                 @Override
                 public void onError(Response<String> response) {
                     super.onError(response);
                     okgoUtilsInterFace.Error(response);
                 }
                 @Override
                 public void onFinish() {
                     super.onFinish();
                     okgoUtilsInterFace.onFinsh();
                 }
             });
}
/*
* 上传文件多个文件,一个文件对于一个key方法
* */
public static void filepost(final int requestCode, String url, List<File> files, Object tag, final OkGoUtilsInterFace okGoUtilsInterFace){
    if (NetworkUtils.isConnected()){
   PostRequest<String> request= OkGo.<String>post(url)
                .tag(tag);
                for(int i=0;i<files.size();i++){
                    request.params("file_"+i,files.get(i));
                }
                request.execute(new StringCallback() {
                    @Override
                    public void onSuccess(Response<String> response) {
                        okGoUtilsInterFace.onSuccess(response, requestCode);
                    }
                    @Override
                    public void uploadProgress(Progress progress) {
                        //进度
                    }
                    @Override
                    public void onError(Response<String> response) {
                        super.onError(response);
                        okGoUtilsInterFace.Error(response);
                    }
                    @Override
                    public void onFinish() {
                        super.onFinish();
                        okGoUtilsInterFace.onFinsh();
                    }
                });
    }
}

/**
 * okgo POST
 *
 * @param requestCode        标识码  用于标识具体的网络请求
 * @param url                请求的url
 * @param param              请求的参数
 * @param tag                tag用于标识和取消网络请求
 * @param okGoUtilsInterFace 接口
 */
public static void POST(final int requestCode, String url, Map<String, String> param, Object tag, final OkGoUtilsInterFace okGoUtilsInterFace) {
    if (NetworkUtils.isConnected()) {
        OkGo.<String>post(url)
                .tag(tag)
                .params(param)
                .execute(new StringCallback() {
                    @Override
                    public void onStart(Request<String, ? extends Request> request) {
                        super.onStart(request);
                        okGoUtilsInterFace.onStart(request);
                    }
                    @Override
                    public void onSuccess(Response<String> response) {
                        okGoUtilsInterFace.onSuccess(response, requestCode);
                    }
                    @Override
                    public void onError(Response<String> response) {
                        super.onError(response);
                        okGoUtilsInterFace.Error(response);
                    }
                    @Override
                    public void onFinish() {
                        super.onFinish();
                        okGoUtilsInterFace.onFinsh();
                    }
                });
    } else {
        okGoUtilsInterFace.onNetWorkError();
    }
}
}

相关文章

网友评论

本文标题:android网络请求-Okgo简单封装

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