Android用Okhttp搭建自己的网络框架

来源:互联网 发布:淘宝店铺等级 编辑:程序博客网 时间:2024/05/17 01:08

在Android Studio中只要在dependencies里添加
compile ‘com.zhy:okhttputils:2.6.2’
而在eclipse中则需要导入okhttp-3.9.0.jar,okhttputils-2_6_2.jar,okio-1.13.0.jar 这三个jar包,但是放心,我已经上传了资源
http://download.csdn.net/download/zxc472504515/9985912

大家可以在这里下载到哦!

接下来导入jar包成功了就开始搭建自己的网络框架了,直接上代码+图片,不墨迹!
这里写图片描述

首先,在 Application里初始化下这个工具,设置下连接时间和超时时间。

  @Override    public void onCreate() {        super.onCreate();        mContext = this;        getokhttp();    }    public void getokhttp() {        OkHttpClient okHttpClient = new OkHttpClient.Builder()//                //设置连接超时时间                .connectTimeout(30000L, TimeUnit.MILLISECONDS)                //设置读取超时时间                .readTimeout(30000L, TimeUnit.MILLISECONDS)                //其他配置                .build();        OkHttpUtils.initClient(okHttpClient);    }

第二步写个okhttp的工具类
这里写图片描述

public class Okhttp {    /**     * post请求     * @param url     * @param paramters     * @param callback     */    public static void post(String url, Map<String, String> paramters,                            final Objectcallback callback) {        try {            OkHttpUtils                    .post()                    .url(url)                    .params(paramters)                    .build()                    .execute(new StringCallback() {                        @Override                        public void onError(Call call, Exception e, int id) {                            Log.e("888", "失败!"+e.toString());                            callback.onFalia(id, e.toString());                        }                        @Override                        public void onResponse(String responseString, int id) {                            if (callback != null) {                                callback.onsuccess(responseString);                            }                        }                    });        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * 上传文件     * @param url     * @param paeam     * @param file     * @param callback     */    public static void post2(String url, String paeam,File file,                            final Objectcallback callback) {        try {            OkHttpUtils                    .post()                    .url(url)//                 .params("file1", com.olacos.kunyu.qqqq File(Environment.getExternalStorageDirectory() + "/DCIM/Camera/IMG_20151225_155549.jpg"))//                    .build()                    .execute(new StringCallback() {                        @Override                        public void onError(Call call, Exception e, int id) {                            Log.e("888", "失败!");                            callback.onFalia(id, e.toString());                        }                        @Override                        public void onResponse(String responseString, int id) {                            if (callback != null) {                                callback.onsuccess(responseString);                            }                        }                    });        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * get请求     * @param url     * @param paramters     * @param callback     */    public static void get(String url, Map<String, String> paramters,                           final Objectcallback callback) {        try {            OkHttpUtils                    .get()                    .url(url)                    .params(paramters)                    .build()                    .execute(new StringCallback() {                        @Override                        public void onError(Call call, Exception e, int id) {                            callback.onFalia(id, e.toString());                        }                        @Override                        public void onResponse(String responseString, int id) {                            if (callback != null) {                                callback.onsuccess(responseString);                            }                        }                    });        } catch (Exception e) {            e.printStackTrace();        }    }    public interface Objectcallback {        void onsuccess(String st);        void onFalia(int code, String errst);    }}

这个封装的类只是最简单的get/post和上传文件的封装,具体的用法,参考
https://github.com/hongyangAndroid/okhttputils 我只是提供的一个思路

最重要的来了
写个API类 封装全局需要调用的方法这里写图片描述
最后 你可以欢快的调用自己封装好的库

        API.login("2", "3", new Okhttp.Objectcallback() {            @Override            public void onsuccess(String st) {                // 成功            }            @Override            public void onFalia(int code, String errst) {                //失败            }        });

大功告成,66的!!

我的QQ:2973901695,欢迎一起交流哦!

原创粉丝点击