正如@caskey所建议的那样,可能的解决方案是使用反射将可重播的输入缓冲区替换为输入缓冲区。但是我没有使用那种方法,因为它很顽皮。
相反,我在一个过滤器中创建了一个请求包装器,该过滤器将输入流读入一个字节数组,并返回一个新的数组,该数组
InputStream内部使用一个
ByteArrayInputStream围绕该数组的所有
getInputStream调用。
在将输入流读取到字节数组之后,我通过解析有效负载来创建参数映射。我合并了超类的参数映射,以支持带有查询参数的GET案例。我已重写所有getParameter
*()方法以使用此参数映射。
我曾经
apache.axis.utils.IOUtils.readFully很容易地将流读入字节数组。而且我目前正在使用
javax.servlet.http.HttpUtils.parsePostData将数据解析为参数映射。
HttpUtils.parsePostData实际上已被弃用,因此当我找到它时,可能会用更好的版本替换它。
但这有效,是的!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)