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

这篇博客介绍了如何在Android项目中使用OkHttp搭建网络框架。首先在依赖中引入必要的库,然后在Application中初始化并设置超时时间。接着创建一个OkHttp工具类,封装基本的GET、POST及文件上传功能。最后,通过编写API类来封装全局的网络调用,方便后续使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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.youkuaiyun.com/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类 封装全局需要调用的方法这里写图片描述
最后 你可以欢快的调用自己封装好的库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值