获取get,post请求参数,并验证是否为空工具类
import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * @author xnz * @date 2019/10/17 9:55 */ public class ParamVerify { /** * 获取post方式传入的参数并根据传入的需验证的参数进行验证 * @param params 需判断是否为空的参数 * @return * @throws IOException */ public static Map<String, Object> verifyPostParam(String ... params) throws IOException { ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); HttpServletRequest request = requestAttributes.getRequest(); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8")); String line; while ((line = br.readLine()) != null) { sb.append(line); } //转换为map JSONObject paramsMap = JSONObject.parseObject(sb.toString()); // 验证参数不为空 if(paramsMap != null) { for (String param : params) { String paramValue = (String) paramsMap.get(param); if (StringUtils.isBlank(paramValue)) { //需判断的参数为空,抛出异常 throw new RuntimeException("请求参数错误! " + param + " 不能为空!"); } } }else{ throw new RuntimeException("请求参数错误!"); } return paramsMap; } /** * 将request.getParameterMap()方式获取的参数整理并根据传入的需验证的参数进行验证 * @param parameterMap 需整理的参数集合 * @param params 需判断是否为空的参数 * @return */ public static Map<String,String> verifyGetParam(Map<String, String[]> parameterMap,String ... params){ Map<String,String> paramsMap = new HashMap<String, String>(); if(parameterMap.isEmpty()){ throw new RuntimeException("请求参数错误!"); } Set<String> keys = parameterMap.keySet(); for (String param : keys) { String[] values = parameterMap.get(param); paramsMap.put(param,values[values.length-1]); } for (String param : params) { String paramValue = paramsMap.get(param); if(StringUtils.isBlank(paramValue)){ //需判断的参数为空,抛出异常 throw new RuntimeException("请求参数错误! " + param + " 不能为空!"); } } return paramsMap; } }