OkHttps的get post封装

本文详细介绍了一个基于OkHttp的网络请求封装方案,通过单例模式创建OkHttps类,使用HttpLoggingInterceptor进行日志拦截,设置读写及连接超时时间,并通过Callback回调处理请求结果。文章展示了如何实现GET请求,包括请求失败和成功的处理方式。

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

1.

public class OkHttps {
private static OkHttps instance;
private Handler handler=new Handler(Looper.getMainLooper());
    private OkHttpClient okHttpClient;
//创建单例模式
        public static OkHttps getInstance(){
            if(instance==null){
                synchronized (OkHttps.class){
                    instance=new OkHttps();
}
            }
                    return instance;
                    }
    //创建拦截器
    private OkHttps(){
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
      loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
              okHttpClient = new OkHttpClient.Builder()
                .readTimeout(20, TimeUnit.SECONDS)
                .writeTimeout(20, TimeUnit.SECONDS)
                .connectTimeout(20, TimeUnit.SECONDS)
                .addNetworkInterceptor(loggingInterceptor)
                .build();
    }
//创建doget方法
    public void doget(String url, final ICallback iCallback, final sBean bean){

        //获取请求
        Request request = new Request.Builder()
                .url(url)
                .get()
                .build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, final IOException e) {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        iCallback.onFaild(e);
                    }
                });
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String s = response.body().string();
                Gson gson = new Gson();
                final sBean bb = gson.fromJson(s, sBean.class);
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        iCallback.onSuccess(bb);
                    }
                });
            }
        });

    }
//创建接口
    public interface ICallback{
        void onSuccess(Object object);
        void onFaild(Exception s);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值