背景:
SpringBoot日常开发中不需要接触原生HTTP Request,框架本身已经实现了request请求自动转化model/vo/dto对象,但有时特殊场景需要获取、操纵原生HTTP Request内容。
Kotlin实现:
在Controller中通过如下方式可以获取到HTTP Request并转为JSON格式
val request = (RequestContextHolder.currentRequestAttributes() as ServletRequestAttributes).request
val json = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()))
进而,可以获取jacksonObjectMapper
,然后实例化对应model,此处应该有一些业务逻辑,否则直接通过SpringBoot框架在controller中自动实例化即可。
val mapper = jacksonObjectMapper()
... some logic
mapper.readValue<UserModel>(json)
网友评论