问题描述
- servlet 麻烦大家帮我看看下面代码有什么问题?
-
String clinetToken = request.getParameter("token");
if(clinetToken == null){
String jsonStr = request.getReader().readLine();
JSONObject json = new JSONObject(jsonStr);
clinetToken = (String) json.get("token");
if(clinetToken == null){return true;
}
}程序运行报“getReader() has already been called for this request”的错误,请问怎么修改?
解决方案
请求的参数是整个RequestBody
解决方案二:
getreader()已经称为该请求
request.getParameter("token");已经请求过一次
request.getParameter()、 request.getInputStream()、request.getReader()这三种方法是有冲突的,因为流只能被读一次。
先通过调用request.getParameter() 方法得到参数后,再调用request.getInputStream()或request.getReader()已经得不到流中的内容,因为在调用 request.getParameter()时系统可能对表单中提交的数据以流的形式读了一次,反之亦然。
时间: 2024-09-30 17:05:27