OkHttp二次封装

  1. 加依赖:

  2.  gson依赖

  3.     compile 'com.google.code.gson:gson:2.2.4'
     okhttp依赖:
        compile 'com.squareup.okhttp3:okhttp:3.10.0'
    加权限:
        <uses-permission android:name="android.permission.INTERNET"/>


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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值