java获取post中的_在Java servlet中从POST请求获取请求负载

使用getReader()来读取请求的主体

String payloadRequest = getBody(request);

public static String getBody(HttpServletRequest request) throws IOException { String body = null; StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; try { InputStream inputStream = request.getInputStream(); if (inputStream != null) { bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); char[] charBuffer = new char[128]; int bytesRead = -1; while ((bytesRead = bufferedReader.read(charBuffer)) > 0) { stringBuilder.append(charBuffer, 0, bytesRead); } } else { stringBuilder.append(""); } } catch (IOException ex) { throw ex; } finally { if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException ex) { throw ex; } } } body = stringBuilder.toString(); return body; }

您可以使用缓冲区读取器从请求读取

// Read from request StringBuilder buffer = new StringBuilder(); BufferedReader reader = request.getReader(); String line; while ((line = reader.readLine()) != null) { buffer.append(line); } String data = buffer.toString()

Java 8stream

String body = request.getReader().lines() .reduce("", (accumulator, actual) -> accumulator + actual);

使用Apache Commons IO,您可以在一行中执行此操作。

IOUtils.toString(request.getReader())

如果在Java 8中正文的内容是一个string,你可以这样做:

String body = request.getReader().lines().collect(Collectors.joining());

你只需要

request.getParameterMap()

获取POST和GET参数。

该方法返回一个Map 。

您可以阅读地图的参数

Map map = request.getParameterMap(); //Reading the Map //Works for GET && POST Method for(String paramName:map.keySet()) { String[] paramValues = map.get(paramName); //Get Values of Param Name for(String valueOfParam:paramValues) { //Output the Values System.out.println("Value of Param with Name "+paramName+": "+valueOfParam); } }

使用Java 8尝试资源:

StringBuilder stringBuilder = new StringBuilder(); try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream()))) { char[] charBuffer = new char[1024]; int bytesRead; while ((bytesRead = bufferedReader.read(charBuffer)) > 0) { stringBuilder.append(charBuffer, 0, bytesRead); } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值