okhttp简单封装

okhttp使用简单封装库

简介

okhttp执行网络请求时是自动开子线程进行的,但是处理网络数据回调回来时,也在子线程中,而我们日常开发主要是在主线程中更新UI,这样是极不方便的,为了解决这个问题和简化okhttp的使用难度,本库对okhttp做了一个简单的封装

版本说明:

okhttp版本信息:3.6.0

使用说明

本库分为三个类:
1. OkHttpManager – 网络底层类,执行网络请求的真正实现类

    2. NetCall       -- 网络请求类标准接口,OKHttpManager就实现这个接口,如果要添加新的网络访问方式,就在这个类添加标准接口即可

    3. NetCallBack   -- 网络回调类,网络请求完成后回调类

具体使用方法:

以一个登陆Activity里面使用为例说明:


public class MainActivity extends AppCompatActivity {

    private NetCall mNetManager = OkHttpManager.getInstance();
    private static final String LOGIN_TASK = "login";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        HashMap<String,String> loginParams = new HashMap<>();
        loginParams.put("mobile", "username");
        loginParams.put("password", "password");

        String params = new JSONObject(loginParams).toString();

        mNetManager.OkHttpPostJSON(params, new NetBack(LOGIN_TASK, this));  //开始网络请求
    }


    private static class NetBack extends NetCallBack {
        WeakReference<MainActivity> weakReference;
        public NetBack(String flag, MainActivity activity) {
            super(flag);

            weakReference = new WeakReference<>(activity);

        }

        /**
         * okhttp回调
         * @param str 回调的字符串
         * @param taskFlag  任务标志
         */
        @Override
        public void responseToMainThread(String str, String taskFlag) {
            MainActivity activity = weakReference.get();
            if(null == activity){
                return;
            }

            if(MainActivity.LOGIN_TASK.equals(taskFlag)){
                //写你的登录结果处理代码
            }

        }

        @Override
        public void responseTOMainError(String netTaskFlag) {
            MainActivity activity = weakReference.get();

            if(null == activity){
                return;
            }


        }
    }

}

总结

如有更好的解决办法,不吝赐教

posted @ 2017-04-10 15:17  帅气好男人_jack  阅读(14)  评论(0编辑  收藏  举报  来源