使用的是前后台分离框架,后台有个打印接口传参的aop,会打印所有接口接收到的参数。当接口类型是get时一切正常,但是post类型时,在本机的swagger上测试都正常,但是到了linux服务器是时,却出现有的时候有参数打印,有时则是打印的null的情况。
找了好久才发现问题所在:1.在用@ApiImplicitParam配置参数时,将paramType设置成了query,导致swagger在发送post请求时也在request在的url附加了参数,于是url和body里面都存在参数了。 里面获取request参数的时候,直接用的是getQueryString(),而这个方法只能获取到url里面的参数。
因为这两个错误导致我在swagger上测试的时候,get和post请求都能正常打印参数。但是到了服务器上后,由于有手机app端发送post请求,而这个请求就不会再在url里面附加参数了,所以后台打印的都是null,而另外一些正常的打印则都是通过服务器swagger发送的请求。