123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- /*
- * 项目名称:common_utils
- * 类名称:RequestUtil
- * 包名称:com.joyintech.util
- *
- * 修改履历:
- * 日期 修正者 主要内容
- * 2016年07月12日 system 初版做成
- *
- * Copyright (c) 2016-2017 兆尹科技
- */
- package com.kmall.common.utils;
- import com.kmall.common.Global;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.json.JSONObject;
- 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.InputStream;
- import java.io.InputStreamReader;
- import java.util.Enumeration;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.logging.Logger;
- /**
- * HTTP请求处理工具类
- * HTTP请求处理工具类
- *
- * @author system
- * @version 1.0
- */
- public class RequestUtil {
- private static final Log LOGGER = LogFactory.getLog(RequestUtil.class.getName());
- /**
- * 将request查询参数封装至Map
- *
- * @param request 请求
- * @param printLog 是否打印日志
- * @return 参数Map
- */
- public static Map<String, Object> getParameters(HttpServletRequest request,
- boolean printLog) {
- Enumeration<String> enume = request.getParameterNames();
- Map<String, Object> map = new HashMap<String, Object>();
- while (enume.hasMoreElements()) {
- String key = enume.nextElement();
- String value = request.getParameter(key);
- map.put(key, value);
- if (printLog) {
- LOGGER.info(key + "==>" + value);
- }
- }
- if (map.get(Global.SORT_ORDER) != null) {
- map.put(Global.SORT_ORDER, "asc");
- }
- return map;
- }
- /**
- * 将request查询参数封装至Map
- *
- * @param request 请求
- * @return 参数Map
- */
- public static Map<String, Object> getParameters(HttpServletRequest request) {
- return getParameters(request, false);
- }
- /**
- * 获取请求方IP
- *
- * @param request 请求
- * @return 客户端Ip
- */
- public static String getClientIp(HttpServletRequest request) {
- String xff = request.getHeader("x-forwarded-for");
- if (xff == null) {
- return request.getRemoteAddr();
- }
- return xff;
- }
- /**
- * 主要功能:获取请求方IP
- * 注意事项:无
- *
- * @param request 请求
- * @return String IP
- */
- public static String getIpAddrByRequest(HttpServletRequest request) {
- String ip = request.getHeader("x-forwarded-for");
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("Proxy-Client-IP");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("WL-Proxy-Client-IP");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getRemoteAddr();
- }
- return ip;
- }
- /**
- * 获取完整的请求URL
- *
- * @param request 请求
- * @return URL
- */
- public static String getRequestUrl(HttpServletRequest request) {
- return request.getRequestURL().toString();
- }
- /**
- * 主要功能:获取request
- * 注意事项:无
- *
- * @return HttpServletRequest
- */
- public static HttpServletRequest getCurrentRequest() {
- return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
- }
- /**
- * 主要功能:获取前端请求并转换map
- * 注意事项:无
- *
- * @param request 请求
- * @return 参数map
- */
- @SuppressWarnings("unchecked")
- public static Map<String, Object> getBody(HttpServletRequest request) {
- // 获取前台参数
- String body = null;
- StringBuilder stringBuilder = new StringBuilder();
- BufferedReader bufferedReader = null;
- try {
- InputStream inputStream = request.getInputStream();
- if (inputStream != null) {
- bufferedReader = new BufferedReader(new InputStreamReader(
- inputStream));
- char[] charBuffer = new char[128];
- int bytesRead = -1;
- while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
- stringBuilder.append(charBuffer, 0, bytesRead);
- }
- } else {
- stringBuilder.append("");
- }
- } catch (IOException ex) {
- } finally {
- if (bufferedReader != null) {
- try {
- bufferedReader.close();
- } catch (IOException ex) {
- }
- }
- }
- body = stringBuilder.toString();
- // 转换成json对象
- JSONObject json = new JSONObject(body);
- // 转化成map合适
- Map<String, Object> paramers = new HashMap<String, Object>();
- Iterator<String> keys = json.keys();
- String key;
- while (keys.hasNext()) {
- key = keys.next();
- paramers.put(key, json.get(key));
- }
- return paramers;
- }
- }
|