问题
遇到一个奇怪的问题:明明客户端有 POST 数据到服务端,但服务端就是“获取不到”数据。相关的代码如下:
|
|
此处,取到的 postBytes
总为空,而不是用户提交的数据。
原因及解决
使用 Spring @RequestParam
来注入参数时,Spring 会去读取 HttpServletRequest request
的值,而request.getInputStream() 只能读取一次,所以就造成第二次去读参数时,获取不到数据了。
注意:ServletRequest.getParameter()
等方法也会隐式地读取请求数据,数据读取一次后得将其保存起来,因为不能再重新获取了。