封装封装OkHttpUtils

来源:互联网 发布:如何自学javascript 编辑:程序博客网 时间:2024/06/12 19:33

封装封装OkHttpUtils

public class Okhttp {    private static  Okhttp okhttp;    private static  Handler handler=new Handler();    private Okhttp(){    }    public static  Okhttp getOkhttp() {        if(okhttp==null){            synchronized (Okhttp.class){                if(okhttp==null){                    okhttp=new Okhttp();                }            }        }        return okhttp;    }    public void doget(String url, Map<String,String> map, final CallBack callBack){     StringBuffer stringBuffer=null;         for(String key:map.keySet()){             if(stringBuffer==null){                 stringBuffer=new StringBuffer();                 stringBuffer.append("?");             }else{                 stringBuffer.append("&");             }             stringBuffer.append(key).append("=").append(map.get(key));         }        OkHttpClient okHttpClient=new OkHttpClient();        Request request=new Request.Builder()                .get()                .url(url+stringBuffer.toString())                .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() {                   callBack.onFailed(e);                    }                });            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String result = response.body().string();                final Bean bean = new Gson().fromJson(result, Bean.class);                handler.post(new Runnable() {                    @Override                    public void run() {                        callBack.onSuccess(bean);                    }                });            }        });    }    public void dopost(String url, Map<String,String> map, final CallBack callBack){        OkHttpClient okHttpClient=new OkHttpClient();        FormBody.Builder builder = new FormBody.Builder();        for (Map.Entry<String,String> entry:map.entrySet()){            builder.add(entry.getKey(),entry.getValue());        }        FormBody body = builder.build();        final Request request=new Request.Builder()                .post(body)                .url(url)                .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() {                   callBack.onFailed(e);                    }                });            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String result = response.body().string();                final Bean bean = new Gson().fromJson(result, Bean.class);                handler.post(new Runnable() {                    @Override                    public void run() {                   callBack.onSuccess(bean);                    }                });            }        });    }}