OkHttp简单封装

  • Post author:
  • Post category:其他


package com.lyn.utils_library;

import com.alibaba.fastjson.JSONObject;
import java.util.Map;
import java.util.Objects;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class OKHttpUtil {

    public static class OKHttpHelperTypeClass {
        private static final OKHttpUtil instance = new OKHttpUtil();
    }

    public static OKHttpUtil getInstance() {
        return OKHttpHelperTypeClass.instance;
    }


    private final OkHttpClient client;

    public OKHttpUtil() {
        this.client = new OkHttpClient.Builder()
                .build();
    }


    /**
     * get 请求
     * @param url url地址
     * @param par 参数
     * @param aClass 返回请求实体类
     * @param <T> 返回对象泛型
     * @return 请求结果
     */
    public <T> T get(String url, Map<String, String> par, Class<T> aClass) {
        try {
            JSONObject jsonObject = JSONObject.parseObject(get(url, par));
            return JSONObject.toJavaObject(jsonObject, aClass);
        } catch (Throwable e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * get 请求
     * @param url url地址
     * @param par 参数
     * @return 请求结果
     */
    public String get(String url, Map<String, String> par) {
        try {
            Request request = new Request.Builder()
                    .url(url.concat(getUrlPar(par)))
                    .build();
            Response response = this.client.newCall(request).execute();
            return Objects.requireNonNull(response.body()).string();
        } catch (Throwable e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 解析url带参为字符串
     * @param par 参数map
     * @return url参数字符串
     */
    public String getUrlPar(Map<String, String> par) {
        if (par == null || par.isEmpty()) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        int i=0;
        for (String key : par.keySet()) {
           if (i==0){
               sb.append("?").append(key).append("=").append(par.get(key));
           }else {
               sb.append("&").append(key).append("=").append(par.get(key));
           }
           i+=1;
        }
        return sb.toString();
    }
}



版权声明:本文为weixin_42063316原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。