Springboot 定义接口方法同时支持GET和POST请求

@RequestMapping 注解能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。

常用方式如下写法:

@RequestMapping(method = RequestMethod.GET)
String get() {
	return "from get";
}
@RequestMapping(method = RequestMethod.DELETE)
String delete() {
	return "from delete";
}
@RequestMapping(method = RequestMethod.POST)
String post() {
	return "from post";
}
@RequestMapping(method = RequestMethod.PUT)
String put() {
	return "from put";
}

如果接口方法,需要同时支持GET/POST两种请求方式,怎么办呢? 如下写法可以解决:

@RequestMapping(value = "/test", method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public String test(HttpServletRequest request) {

	//遍历请求参数
	Set<Map.Entry<String, String>> set = showParams(request).entrySet();
	for (Map.Entry<String,String> entry : set) {
		if (!entry.getKey().toString().equals("submit")) {
			log.info("param:{}={}", entry.getKey().toString(), entry.getValue().toString());
		}
	}
	
	return "ok";
}

private Map showParams(HttpServletRequest request) {
	Map map = new HashMap();
	Enumeration paramNames = request.getParameterNames();
	while (paramNames.hasMoreElements()) {
		String paramName = (String) paramNames.nextElement();
		String[] paramValues = request.getParameterValues(paramName);
		if (paramValues.length == 1) {
			String paramValue = paramValues[0];
			if (paramValue.length() != 0) {
				map.put(paramName, paramValue);
			}
		}
	}
	
	return map;
}

关键是这一行:@RequestMapping(value = "/test", method = {RequestMethod.GET,RequestMethod.POST})

 

https://blog.oxings.com/article/25.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值