|
|
@@ -11,13 +11,72 @@ import java.util.Map;
|
|
|
/**
|
|
|
* @Author: zwq
|
|
|
* @Date: Create in 2020/9/21 10:19
|
|
|
- * @Description: 获取httprequest请求参数工具类
|
|
|
+ * @Description: 读取httprequest请求参数工具类
|
|
|
*/
|
|
|
public class HttpRequestUtils {
|
|
|
|
|
|
- public static HashMap<String, String> findRequestMap(HttpServletRequest request) {
|
|
|
+ /**
|
|
|
+ * 多次request请求参数获取
|
|
|
+ * 针对POST方法的参数是存储在输入流中,只能读一次,不能多次读取。
|
|
|
+ * 重写相关ServletRequest方法,实现多次读取的能力
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ public static HashMap<String, String> getMultiRequestMap(WrappedHttpServletRequest request) throws IOException {
|
|
|
HashMap<String, String> requestMap = new HashMap<String, String>();
|
|
|
- // Map requestParams = request.getParameterMap();
|
|
|
+
|
|
|
+ if (request.getMethod().equals("GET")) {
|
|
|
+ Map requestParams = request.getParameterMap();
|
|
|
+ for (Iterator iter = requestParams.keySet().iterator(); iter
|
|
|
+ .hasNext(); ) {
|
|
|
+ String name = (String) iter.next();
|
|
|
+ String[] values = (String[]) requestParams.get(name);
|
|
|
+ String valueStr = "";
|
|
|
+ for (int i = 0; i < values.length; i++) {
|
|
|
+ valueStr = (i == values.length - 1) ? valueStr + values[i]
|
|
|
+ : valueStr + values[i] + ",";
|
|
|
+ }
|
|
|
+ requestMap.put(name, valueStr);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ String jsonString = null;
|
|
|
+ try {
|
|
|
+ jsonString = request.getRequestParams();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ if (jsonString.contains("&")) {
|
|
|
+ String[] strs = jsonString.split("&");
|
|
|
+ for (int i = 0; i < strs.length; i++) {
|
|
|
+ String json = strs[i];
|
|
|
+ String[] strs1 = json.split("=");
|
|
|
+ if (strs1.length == 1) {
|
|
|
+ requestMap.put(strs1[0].trim(), "");
|
|
|
+ } else {
|
|
|
+ requestMap.put(strs1[0].trim(), strs1[1].trim());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ JSONObject jsonObject = JSONObject.fromObject(jsonString);
|
|
|
+ Iterator<String> keys = jsonObject.keys();// 定义迭代器
|
|
|
+ String key = null;
|
|
|
+ String value = null;
|
|
|
+ while (keys.hasNext()) {
|
|
|
+ key = keys.next().toString();
|
|
|
+ value = jsonObject.get(key).toString();
|
|
|
+
|
|
|
+ requestMap.put(key.trim(), value.trim());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return requestMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static HashMap<String, String> getRequestMap(HttpServletRequest request) {
|
|
|
+ HashMap<String, String> requestMap = new HashMap<String, String>();
|
|
|
+
|
|
|
if (request.getMethod().equals("GET")) {
|
|
|
Map requestParams = request.getParameterMap();
|
|
|
for (Iterator iter = requestParams.keySet().iterator(); iter
|
|
|
@@ -70,7 +129,6 @@ public class HttpRequestUtils {
|
|
|
return requestMap;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/***
|
|
|
* 获取 request 中 json 字符串的内容
|
|
|
*
|
|
|
@@ -119,6 +177,7 @@ public class HttpRequestUtils {
|
|
|
}
|
|
|
i += readlen;
|
|
|
}
|
|
|
+
|
|
|
return buffer;
|
|
|
}
|
|
|
|