package com.ruoyi.common.utils; import com.ruoyi.common.exception.ServiceException; import java.io.UnsupportedEncodingException; import java.lang.reflect.Field; import java.net.URLEncoder; import java.util.*; public class RequestParamsUtil { /** * http */ public final static String HTTP = "http://"; /** * 分隔符 */ public final static String SEPARATOR = ":"; /** * 历史遥测 */ public final static String HISTORY_TELEMETRY = "/ipark-device-management/device/history-telemetry/list"; /** * 预览url */ public final static String PREVIEW_URLS = "/ipark-video/video/service/api/cameras/previewURLs"; /** * 控制 */ public final static String CONTROLLING = "/ipark-video/video/service/api/ptzs/controlling"; public final static String CAMERA_SEARCH = "/ipark-video/video/resource/api/camera/search"; /** * 设备信息 */ public final static String DEVICE_INFO = "/ipark-device-management/device-external/devices/list"; /** * 设备模型 */ public final static String DEVICE_MODEL = "/ipark-device-management/device-external/models/{id}"; /** * 设备分页列表 */ public final static String DEVICE_PAGE_LIST = "/ipark-device-management/device-external/devices/page"; /** * 查询简明设备列表 */ public final static String BRIEF_DEVICE = "/ipark-device-management/device/brief-device/list"; /** * 查询简明设备列表 */ public final static String DEVICE_TYPE = "/ipark-device-management/device/brief-device-type/list"; /** * 手动抓图 */ public final static String MANUAL_CAPTURE = "/api/video/v1/manualCapture"; private RequestParamsUtil() { } public static String buildParams(Object param) { Map map = new HashMap<>(); Field[] fields = param.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); try { if (field.get(param) == null) { continue; } map.put(field.getName(), field.get(param)); } catch (Exception e) { throw new ServiceException("构建请求参数异常..."); } } String params; try { params = createLinkStringByGet(map); } catch (UnsupportedEncodingException e) { throw new ServiceException("构建请求参数异常..."); } return params; } private static String createLinkStringByGet(Map params) throws UnsupportedEncodingException { List keys = new ArrayList<>(params.keySet()); Collections.sort(keys); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < keys.size(); i++) { String key = keys.get(i); Object value = params.get(key); if (i == keys.size() - 1) { stringBuilder.append(key).append("=").append(URLEncoder.encode(String.valueOf(value), "utf-8")); } else { stringBuilder.append(key).append("=").append(URLEncoder.encode(String.valueOf(value), "utf-8")).append("&"); } } return stringBuilder.toString(); } }