java springmvc controller raw xml post request.getInputStream();
来源:互联网 发布:网络推广代运营公司 编辑:程序博客网 时间:2024/05/17 11:58
背景:
最近在做微信支付的服务端代码,微信支付成功后,微信回调服务端通知接口,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过来,很成功的读取到了。
阅读全文