开发者社区> 问答> 正文

springmvc里面的get请求,参数获取 400 请求报错 

springmvc处理如下接口:

http://localhost:8080/webgis/vehicle/data/vehicledetail?type=1&params=13812345678
后台Controller代码:
@RequestMapping(value="/data/vehicledetail", method=RequestMethod.GET)
	public String vehicledetail(HttpServletRequest request) throws SystemException {
         Map<String, Object> resultMap = new HashMap<String, Object>();
         String qs = request.getQueryString();
	 Map<String,Object> params = super.parseReqParam(request);
         ............
}
获取参数方法代码:
public Map<String,Object> parseReqParam(HttpServletRequest request){
		// 取消对请求串的UTF-8编码,防止不同浏览器中发送请求时进行默认编码处理导致的转码失败
		Map<String, Object> map = null;
		try {
			byte[] buffer = new byte[512];
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			InputStream in = request.getInputStream();
			for (int len = 0; (len = in.read(buffer)) > 0;) {
				baos.write(buffer, 0, len);
			}
			String content = new String(baos.toByteArray(), DEFAULT_ENCODING);
			if(StringUtils.isNotBlank(content)){
				ObjectMapper mapper = new ObjectMapper();
				map = mapper.readValue(content, Map.class);
			}
			
			baos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return  map;
	}
此时,获取参数的方法返还NULL. 但是Controller修改如下代码之后是可以获取到参数type的值:
public String vehicledetail(@RequestParam("type") Integer type, HttpServletRequest request) throws SystemException {
同时如果直接用如下代码:String qs = request.getQueryString(); 也可以获取get请求后面的queryString的内容。 这里有几个问题想请了解这块知识的朋友帮忙详细解答一下: 1、request.getInputStream()这个流是http请求哪个部分? 2、为什么request.getParamerter("参数名")不能获取get后面queryString的内容呢? 请不吝赐教,谢谢。

展开
收起
kun坤 2020-05-29 09:52:07 1054 0
1 条回答
写回答
取消 提交回答
  • request.getInputStream()获取的是Http请求包的包体,GET方式请求一般不包含包体,请求参数是通过URL传递的,所以会返回null。相对应的POST方式通常请求参数是以请求包体的方式传递的。
    问题2,没见你代码里面哪里调用了request.getParamerter(),不过应该是可以使用的 ######谢谢你的回答;关于“问题2,无引用request.getParamerter()这个在代码里面没有使用”,自己有测试过,是取不到值。这个要去看看源码,暂时还不知道为何。######http://blog.csdn.net/mhmyqn/article/details/25561535。

    2020-05-29 11:39:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多