非常简单封装Okhttp

okhttp是非常强大的网络请求数据,大家也都有了解了,废话不多说,直接上代码,一种特别简单的封装。

第一步:

 导包:

compile 'com.zhy:okhttputils:2.0.0'

compile 'com.google.code.gson:gson:2.8.2'

第二步:

 创建net包,在这个包中只需三个类(Api,OkHttp,OnNetListener)

Api用来写接口

public static boolean isOnline = false;
public static final String PRODUCT = "http://www.baidu.com";
public static final String DEVELOP = "http://169.254.209.91";
public static final String HOST = isOnline ? PRODUCT : DEVELOP;

public static final String MAIN_PAGE = HOST + "/mobile/index.php?act=index";//首页
public static final String CLASS_PAGE = DEVELOP+"/mobile/index.php?act=goods_class";//分类
public static final String CLASS_PAGE_GOODS_LIST = DEVELOP+"/mobile/index.php?act=goods&op=goods_list&page=100";//商品搜索--列表页 GET
//public static final String SHOPPING_PAGE = HOST + "/mobile/index.php?act=index";//
public static final String PERSON_PAGE = HOST + "/mobile/index.php?act=member_index";//个人中心
public static final String LOGING_PAGE = HOST + "/mobile/index.php?act=login";//登录
public static final String REGISTER_PAGE = HOST + "/mobile/index.php?act=login&op=register";//注册
public static final String LINK_MOBILE_GOODS_DETAIL =HOST+"/mobile/index.php?act=goods&op=goods_detail";//商品详细 GET


OkHttp

public class OkHttp {

    private static volatile OkHttp httpUtil;
    public final Gson gson;

    private OkHttp() {
        gson = new Gson();
    }

    public static OkHttp getHttpUtil() {
        if (httpUtil == null) {
            synchronized (OkHttp.class) {
                if (httpUtil == null) {
                    httpUtil = new OkHttp();
                }
            }
        }
        return httpUtil;
    }

    public void Httputils (String url, final Class clazz, final OnNetListener onnetListener){
        OkHttpUtils.get().url(url).build().execute(new StringCallback() {
            @Override
            public void onError(Request request, Exception e) {
            }
            @Override
            public void onResponse(String response) {
                if(response!=null){
                    Object o = gson.fromJson(response,clazz);
                    onnetListener.onSuccess(o);
                }
            }
        });
    }

    private void showErrorInfo(Context context) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage("请求数据有误,请稍后再试!");
        builder.setPositiveButton("确定", null);
        builder.setNegativeButton("取消", null);
        builder.show();
    }
}
OnNetListener

public interface OnNetListener {
    public void onSuccess(Object obj);
}

这样就封装好了,简单吧
只需要在用的时候引用就可以了
private void getData(String Urls) {

    OkHttp.getHttpUtil().Httputils(Urls, DescriptionBean.class, new OnNetListener() {
        @Override
        public void onSuccess(Object obj) {
            DescriptionBean desBean = (DescriptionBean) obj;
            desList.addAll(desBean.getDatas().getGoods_commend_list());
            adapter = new Oadapter(desList,getActivity());
            mListview.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        }
    });
}



你可能感兴趣的:(网络,数据,技术)