您的位置:首页 > 编程语言 > Java开发

java springmvc controller raw xml post request.getInputStream();

2017-12-24 23:05 405 查看
背景:

最近在做微信支付的服务端代码,微信支付成功后,微信回调服务端通知接口,POST传递了一个raw,流数据,服务端是java springMvc,controller 中通过HttpServletRequest request解析流数据

InputStream inputStream;
StringBuffer sb = new StringBuffer();
inputStream = request.getInputStream();
String s;
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
while ((s = in.readLine()) != null) {
sb.append(s);
}
in.close();
inputStream.close();


嗯,是不是方式不对?各种badu,google,stackoverflow,各种尝试,没有能够解决问题的方法。看到了同样的springmvc很多同样的问题没有解决,是不是springmvc的框架限制了我的发挥。

最后看到了

需要注意的是:

request.getParameter()、 request.getInputStream()、request.getReader()这三种方法是有冲突的,因为流只能被读一次。

恍然大悟,找一找是不是其他地方有拦截器什么的处理过HttpServletRequest,找到了,就在这里把上面的代码copy过来,很成功的读取到了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: