OkHttp二次封装

  1. package com.bwie.s.util;  
  2. /** 
  3.  * author:Created by ZhangPengFei on 2017/12/19. 
  4.  */  
  5.   
  6.   
  7. import android.os.Handler;  
  8. import android.util.Log;  
  9.   
  10. import java.io.IOException;  
  11. import java.util.Map;  
  12.   
  13. import okhttp3.Call;  
  14. import okhttp3.Callback;  
  15. import okhttp3.OkHttpClient;  
  16. import okhttp3.Request;  
  17. import okhttp3.Response;  
  18.   
  19.   
  20. /** 
  21.  * author:Created by WangZhiQiang on 2017/12/5. 
  22.  */  
  23.   
  24.   
  25. public class OKHttpUtils {  
  26.     private static OKHttpUtils okHttpUtils;  
  27.     private static Handler handler = new Handler();  
  28.   
  29.   
  30.     //私有化构造方法  
  31.     public OKHttpUtils() {  
  32.   
  33.   
  34.     }  
  35.   
  36.   
  37.     /** 
  38.      * 获取OKhttpClient实例化 
  39.      */  
  40.     public static OKHttpUtils getInstance() {  
  41.         if (null == okHttpUtils) {  
  42.             synchronized (OKHttpUtils.class) {  
  43.                 if (null == okHttpUtils) {  
  44.                     okHttpUtils = new OKHttpUtils();  
  45.                 }  
  46.             }  
  47.         }  
  48.         return okHttpUtils;  
  49.     }  
  50.   
  51.   
  52.     /** 
  53.      * 封装的异步Get请求 
  54.      */  
  55.     public void doGet(String path, Map<String, String> map, final IOkHttpUtils okHttpCallBack) {  
  56.         //创建一个字符串容器  
  57.         StringBuilder sb = null;  
  58.         if (map.size() == 0) {  
  59.             if (null == sb) {  
  60.                 sb = new StringBuilder();  
  61.                 sb.append(path);  
  62.             }  
  63.         } else {  
  64.             for (String key : map.keySet()) {  
  65.                 if (null == sb) {  
  66.                     sb = new StringBuilder();  
  67.                     sb.append(path);  
  68.                     sb.append("?");  
  69.                 } else {  
  70.                     sb.append("&");  
  71.                 }  
  72.                 sb.append(key).append("=").append(map.get(key));  
  73.             }  
  74.         }  
  75.   
  76.   
  77.         //System.out.println("分类 : "+path + sb.toString());  
  78.   
  79.         OkHttpClient okHttpClient = new OkHttpClient.Builder()  
  80.                 .addInterceptor(new Intercept())//使用拦截器  
  81.                 .build();  
  82.         Request request = new Request.Builder()  
  83.                 .url(sb.toString())  
  84.                 .get()  
  85.                 .build();  
  86.         //OKHttp 网络  
  87.         Call call = okHttpClient.newCall(request);  
  88.         //异步请求  
  89.         call.enqueue(new Callback() {  
  90.             @Override  
  91.             public void onFailure(Call call, IOException e) {  
  92.                 //请求失败  
  93.                 Log.e("SKN""OK请求失败");  
  94.                 okHttpCallBack.onFailed(e.getMessage());  
  95.             }  
  96.   
  97.   
  98.             @Override  
  99.             public void onResponse(Call call, final Response response) throws IOException {  
  100.                 final String str = response.body().string();  
  101.                 //请求成功  
  102.                 handler.post(new Runnable() {  
  103.                     @Override  
  104.                     public void run() {  
  105.                         Log.e("WWWW""请求成功" + str);  
  106.                         okHttpCallBack.onSuccess(str);  
  107.                     }  
  108.                 });  
  109.             }  
  110.         });  
  111.     }  
  112. }  

猜你喜欢

转载自blog.csdn.net/xude01/article/details/79794668