package com.ard.work.health.util; import com.alibaba.fastjson.JSON; import com.ard.common.core.utils.StringUtils; import okhttp3.FormBody; import okhttp3.Headers; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class OkhttpUtils { /** * @描述 okhttp get请求 * @参数 [url, params, headersParams] * @返回值 java.util.Map * @创建人 刘苏义 * @创建时间 2023/5/6 15:19 * @修改人和其它信息 */ public static Map getAllAlarmData(String url, Map params, Map headersParams) { OkHttpClient okHttpClient = new OkHttpClient(); url += setParams(params); Request request = new Request.Builder().headers(setHeaders(headersParams)).url(url).build(); Response response = null; try { response = okHttpClient.newCall(request).execute(); } catch (IOException e1) { e1.printStackTrace(); } ResponseBody responseBody = response.body(); try { //剔除所有\符号 String message = responseBody.string().replaceAll("\\\\", ""); //剔除整个字符串首尾双引号 if (message.startsWith("\"")) { message = message.substring(1, message.length()); } if (message.endsWith("\"")) { message = message.substring(0, message.length() - 1); } Map result = (Map) JSON.parse(message); return result; } catch (IOException e) { e.printStackTrace(); return new HashMap(); } } /** * @描述 okhttp post请求 * @参数 [url, body, headersParams] * @返回值 java.util.Map * @创建人 刘苏义 * @创建时间 2023/5/6 15:19 * @修改人和其它信息 */ public static Map postAllAlarmData(String url, Map body, Map headersParams) { OkHttpClient okHttpClient = new OkHttpClient(); FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry entry : body.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } FormBody formBody = builder.build(); Request request = new Request.Builder().post(formBody).headers(setHeaders(headersParams)).url(url).build(); Response response = null; try { response = okHttpClient.newCall(request).execute(); } catch (IOException e1) { e1.printStackTrace(); } ResponseBody responseBody = response.body(); try { //剔除所有\符号 String message = responseBody.string().replaceAll("\\\\", ""); //剔除整个字符串首尾双引号 if (message.startsWith("\"")) { message = message.substring(1, message.length()); } if (message.endsWith("\"")) { message = message.substring(0, message.length() - 1); } Map result = (Map) JSON.parse(message); return result; } catch (IOException e) { e.printStackTrace(); return new HashMap(); } } /** * 设置参数 * * @param params * @return */ public static String setParams(Map params) { StringBuffer sb = new StringBuffer("?"); if (StringUtils.isNotEmpty(params)) { for (Map.Entry item : params.entrySet()) { Object value = item.getValue(); if (StringUtils.isNotNull(value)) { sb.append("&"); sb.append(item.getKey()); sb.append("="); sb.append(value); } } return sb.toString(); } else { return ""; } } /** * 设置Header头 * * @param headersParams * @return */ private static Headers setHeaders(Map headersParams) { Headers headers = null; Headers.Builder headerBuilder = new Headers.Builder(); if (headersParams != null) { for (String key : headersParams.keySet()) { headerBuilder.add(key, headersParams.get(key).toString()); } } headers = headerBuilder.build(); return headers; } }