这种方式是直接读流 ★★★★★

HttpServletRequest request = getContext().getRequest();   //获取request对象

BufferedReader br = new BufferedReader(new InputStreamReader((ServletInputStream) request.getInputStream(), \"utf-8\"));
            StringBuffer sb = new StringBuffer();
            String temp;

            while ((temp = br.readLine()) != null) {
                sb.append(temp);
            }
            br.close();
            String json = sb.toString();
 

这种方式要比下面的方式要好,下面的方式容易出问题,因为当遇到网络问题,或请求较多时,会导致读出来的数据不全

 

这种方式是,先得到流的长度,然后把他放到字节数组里,再去读里面的数据,这样网络不好,或者数据过长,分段发送的话就会出问题,楼主亲测,所以当你要用流去读数据的时候,就用上面那种方式吧!下面这种就别考虑了!

HttpServletRequest request = getContext().getRequest();   //获取request对象

int totalbytes = request.getContentLength();
            // 容纳请求消息实体的字节数

            byte[] dataOrigin = new byte[totalbytes];

            DataInputStream in = new DataInputStream(request.getInputStream());

            while (in.available() != 0) {
                in.read(dataOrigin); // 将消息实体的内容读入字节数组dataOrigin
            }
            in.close();

            String encodedString = new String(dataOrigin);

收藏 打印