获取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;
}
}