我用jfinal做的api,需要接收客户端提交的json POST数据,数据是zlib压缩过的,但是没有把"gzip"封装到Content-Encoding里,我在handler里用Inflater把request用InputStream的方式解压出来,但是不知道怎么把解压完的InputStream重新封到request里交给controller处理?如果直接在controller里处理的话,貌似框架会提前把request给处理成乱码。
我想知道框架处理request的时候,会处理gzip解压吗?如果我在request头里加上Content-Encoding,是不是能给解压?(客户端要求不能修改,只能动服务端了)
如果你自行将数据压缩并走 http,那么,你需要做个 Handler,在里面解压,然后再创建一个新的 HttpServletRequest 对象,并将解析好的数据放进去
然后用这个新的 request 对象代替老的,只需要在 Handler.handle 方法中调用:
next.handel(target, 新的request对象, response)
即可