如何解决两次调用request.getReader()解析JSON出现的Stream Close异常
报错根因
HTTP 请求的输入流仅支持单次读取,第一行代码调用request.getReader()完成JSON解析后,流已经被完全消费并自动关闭,第二行再次调用request.getReader()时就会触发流已关闭的报错。
修复方案
- 仅读取一次请求流,将解析后的结果存入临时变量,后续直接从变量中读取对应字段即可,无需重复解析请求流。
修正后的代码如下:
// 仅做一次请求流读取与解析 def requestBody = JSON.parse(request.getReader()) as Map def maquinasComProgramacoes = requestBody.entity as ArrayList Boolean possuiProgramacoesSalvas = requestBody.possuiProgramacoesSalvas
如果你的后端框架支持请求体自动解析绑定,直接使用框架的参数注入能力获取请求参数,可完全避免手动操作请求流出现的类似问题。
内容的提问来源于stack exchange,提问作者Antonio Fabricio
相关产品推荐
相关产品推荐

