okHttp单例封装

此为okhttp封装的单例工具类,及泛型回调,结合了mvp模式
package com.bwie.test.Utils;

import android.os.Handler;
import android.os.Message;

import com.bwie.test.View.CallBackResult;
import com.google.gson.Gson;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;ssss
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

/**
 * User: Moyuchen
 * Date: 2017-10-26 14:50
 * Description:
 */
public class NetWorkOkHttp {
    private static NetWorkOkHttp netWorkOkHttp;
    private OkHttpClient client;
    private final Handler handler;

    private NetWorkOkHttp(){
        client=new OkHttpClient.Builder().addInterceptor(new LoggingInterceptor())
                .build();
        handler = new Handler();

    }
    //单例模式
    public static NetWorkOkHttp getInstance(){
        if (netWorkOkHttp==null) {
            synchronized (NetWorkOkHttp.class){
                if (netWorkOkHttp==null) {
                    netWorkOkHttp=new NetWorkOkHttp();
                }
            }
        }
        return  netWorkOkHttp;
    }

    public<T> void getData(String url, final CallBackResult callBackResult, final Class<T> tclass){
        FormBody.Builder builder = new FormBody.Builder();
        RequestBody requestbody = builder.build();

        Request request=new Request.Builder().url(url).post(requestbody).build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                callBackResult.onFailure("请求失败");
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if ( response.isSuccessful()) {
                    String string = response.body().string();
                    Gson gson=new Gson();
                    final T t = gson.fromJson(string, tclass);

                    final Message msg = Message.obtain();
                    msg.obj=t;
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            callBackResult.onResponse(msg.obj);
                        }
                    });

                }

            }
        });

    }


}
此为公共的接口,添加泛型
package com.bwie.test.View;

/**
 * User: Moyuchen
 * Date: 2017-10-26 14:48
 * Description:
 */
public interface CommonView<T> {
    void OnFailure(String msg);
    void OnResponse(T t);
}


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值