OkhttpUtils一个专注于让网络请求更简单的框架

一句话概括,OkHttpUtils一个专注于让网络请求更简单的网络请求框架,对于任何形式的网络请求只需要一行代码。

使用方法:

  1. Json数据
    新建一个JsonCallBack类,用于处理返回的Json数据
public abstract class JsonCallback<T> extends Callback<T> {
    //需要Gson工具解析成某一个类
    private Class mClass;
    //使用谷歌提供的Gson工具解析
    private Gson mGson;

    public JsonCallback(Class clazz){
        mClass = clazz;
        mGson = new Gson();
    }

    @Override
    public T parseNetworkResponse(Response response) throws IOException {
        try {
            String jsonString = response.body().string();
            return mGson.fromJson(jsonString, mClass);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

申请网络请求

private void getMusic(final int offset) {
        OkHttpUtils.get().url(Constants.BASE_URL)
                 //addParams("键","值")
                .addParams(Constants.PARAM_METHOD, Constants.METHOD_GET_MUSIC_LIST)
                .addParams(Constants.PARAM_TYPE, mListInfo.getType())
                .addParams(Constants.PARAM_SIZE, String.valueOf(Constants.MUSIC_LIST_SIZE))
                .addParams(Constants.PARAM_OFFSET, String.valueOf(offset))
                .build()
                .execute(new JsonCallback(JsonOnlineMusicList.class) {

                    @Override
                    public void onResponse(JsonOnlineMusicList response) {
                       //请求成功后回调
                       //这时就获得了JsonOnlineMusicList的对象response

                    }

                    @Override
                    public void onError(Call call, Exception e) {
                      //请求失败后回调
                    } 
                });
    }

2.下载文件

if (!TextUtils.isEmpty(mJOnlineMusic.getLrclink()) && !lrcFile.exists()) {
            OkHttpUtils.get().url(mJOnlineMusic.getLrclink()).build()
                    .execute(new FileCallBack(FileUtils.getLrcDir(), lrcFileName) {
                        @Override
                        public void inProgress(float progress, long total) {
                        }

                        @Override
                        public void onResponse(File response) {
                        }

                        @Override
                        public void onError(Call call, Exception e) {
                        }

                        @Override
                        public void onAfter() {
                           //请求结束后回调,无论网络请求成功还是失败,都会调用,可以用于关闭显示对话框

                       }
           });
     }

3.下载Bitmap

OkHttpUtils.get().url(picUrl).build()
                    .execute(new BitmapCallback() {
                        @Override
                        public void onResponse(Bitmap bitmap) {

                        }

                        @Override
                        public void onError(Call call, Exception e) {

                    });
        }

你可能感兴趣的:(安卓踩坑日记)