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 版权协议,转载请附上原文出处链接和本声明。