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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_29843547/article/details/78888328

背景:

最近在做微信支付的服务端代码,微信支付成功后,微信回调服务端通知接口,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过来,很成功的读取到了。

猜你喜欢

转载自blog.csdn.net/sinat_29843547/article/details/78888328
今日推荐