okhttp的自定义封装

来源:互联网 发布:软件研发团队介绍 编辑:程序博客网 时间:2024/05/17 22:46

1.之前写的代码,更新下博客.

public class OkhttpGJ {   private OkHttpClient mClient=null;  public OkHttpClient getClientInstance(){ //第一步:使用单例模式,获取okhttpclient      if (mClient==null){        synchronized (OkhttpGJ.class){          if (mClient==null){            mClient=new OkHttpClient();          }        }      }     return mClient;   }   interface  NetCallBack{ //第二部:创建接口,用来回调请求结果      void onSuccess(String result); //网络请求成功返回的结果      void onFail(Exception e); //网络请求失败,返回的异常   }   private  Request request=null;   public void okHttpGet(Context context,String url, final NetCallBack callBack){ //第三部:进行get请求      request = new Request.Builder().url(url).build(); //创建请求     getClientInstance().newCall(request).enqueue(new Callback() {  //将请求添加到请求对累中       @Override       public void onFailure(Call call, IOException e) {  //失败           callBack.onFail(e);  //将异常传回去       }       @Override       public void onResponse(Call call, Response response) throws IOException {          callBack.onSuccess(request.body().toString());  //将请求的数据转成string格式回传       }     });   }  public void okHttpPost(final Context context,String url, RequestBody requestBody, final NetCallBack callBack){ //post请求    request = new Request.Builder().url(url).post(requestBody).build();    getClientInstance().newCall(request).enqueue(new Callback() {      @Override      public void onFailure(Call call, final IOException e) {        Toast.makeText(context, "服务器连接失败", Toast.LENGTH_SHORT).show();        callBack.onFail(e);      }      @Override      public void onResponse(Call call, final Response response) throws IOException {        Toast.makeText(context,"网络请求成功.",Toast.LENGTH_SHORT).show();        final String result = response.body().string();        callBack.onSuccess(result);  //请求成功返回      }    });  }}

0 0