关于一次post请求参数为json格式时,HTTPServletRequest拿不到请求参数,从而记录一次笔记

在尝试使用Zuul网关进行token校验时,遇到通过POST方法发送JSON参数导致HttpServletRequest无法获取的问题。经发现,getParameter()方法无法处理JSON格式的POST请求。解决方案是使用I/O流读取请求体,以获取JSON字符串并解析出token。但要注意,一旦使用了getInputStream()或getReader(),将无法再使用getParameter(),因为ServletInputStream不支持reset(),只能读取一次。
摘要由CSDN通过智能技术生成

  今天在试着搭建微服务zuul网关的时候,想到用zuul自带的过滤器来做一次token校验,结果就是为了图省事儿用了post方法传了json格式的参数,结果就是传了token参数,他就是校验不到。

自己在代码里用的 HTTPServletRequest来接受参数

 结果当然就是无论怎么传都接受不到了,对于getParameter这种获取方式,只能获取到表单形式(header),从而拿不到参数为json格式的post请求参数。(对于请求参数的获取方式大家自行百度吧哈哈,选择适合自己的最重要。)

所以更改取值方法,用I/O流去读取就可以拿到一个json类型的字符串,从而在取出自己想要的token去校验就可以了:

@Override
    public Object run() {
        RequestContext requestContext = RequestContext.getCurrentContext();
        HttpServletRequest request = requestContext.getRequest();
        log.info(String.format("%s >>> %s", request.getMethod(), request.getRequestURL()
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值