HttpServletRequestデータストリームでデータを読み出す
7799 ワード
HttpServletRequestデータストリームでデータを読み出す
HttpServletRequestデータストリームは一回しか読み取れません。第二のデータストリームはもう読まれました。一つの方式では読み取れない場合があります。別の方式で読み取る場合、まずストリームが空かどうかを判断します。
HttpServletRequestデータストリームは一回しか読み取れません。第二のデータストリームはもう読まれました。一つの方式では読み取れない場合があります。別の方式で読み取る場合、まずストリームが空かどうかを判断します。
null != request.getParamterNames()
列挙して取るif (null == jsonObject || null != request.getParameterNames()) {
Enumeration enu = request.getParameterNames();
while (enu.hasMoreElements()) {
String paraName = (String) enu.nextElement();
logger.info("modelId={}, paraName={}, ={}", payRequestModelVO.getPayModelId(), paraName, request.getParameter(paraName));
jsonObject = JSON.parseObject(json);
}
}
readLinepublic static String getInputStream(HttpServletRequest request) throws Exception {
ServletInputStream stream = null;
BufferedReader reader = null;
StringBuffer sb = new StringBuffer();
try {
stream = request.getInputStream();
//
reader = new BufferedReader(new InputStreamReader(stream));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
logger.error(e);
throw new DescribeException(" !", -1);
} finally {
reader.close();
}
logger.info(" :" + sb.toString());
return sb.toString();
}
2019年9月27日19:28:16自己試験get :
readLine:
:
post(form):
readLine:
:
post(json): {"aaaa":"11111","bbbbbb":"22222222","v":"5555"}
readLine:
:
json、xml式の要求はストリームreadline、get式またはpost(appication/x-wn-form-urlencoded)で列挙して取って、同じ方式で値が取れないようにします。