获取get,post请求参数,并验证是否为空 工具类

获取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;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章