zoukankan      html  css  js  c++  java
  • java web获取请求体内容

    Java Web中如何获取请求体内容呢?

    我们知道请求方式分为两种:Get,Post。

    /*** 
         * Compatible with GET and POST 
         *  
         * @param request 
         * @return : <code>byte[]</code> 
         * @throws IOException 
         */  
        public static byte[] getRequestQuery(HttpServletRequest request)  
                throws IOException {  
            String submitMehtod = request.getMethod();  
            String queryString = null;  
      
            if (submitMehtod.equals("GET")) {// GET  
                queryString = request.getQueryString();  
                String charEncoding = request.getCharacterEncoding();// charset  
                if (charEncoding == null) {  
                    charEncoding = "UTF-8";  
                }  
                return queryString.getBytes(charEncoding);  
            } else {// POST  
                return getRequestPostBytes(request);  
            }  
        }  
      
    /*** 
         * Get request query string, form method : post 
         *  
         * @param request 
         * @return byte[] 
         * @throws IOException 
         */  
        public static byte[] getRequestPostBytes(HttpServletRequest request)  
                throws IOException {  
            int contentLength = request.getContentLength();  
            if(contentLength<0){  
                return null;  
            }  
            byte buffer[] = new byte[contentLength];  
            for (int i = 0; i < contentLength;) {  
      
                int readlen = request.getInputStream().read(buffer, i,  
                        contentLength - i);  
                if (readlen == -1) {  
                    break;  
                }  
                i += readlen;  
            }  
            return buffer;  
        }  
    /*** 
         * Get request query string, form method : post 
         *  
         * @param request 
         * @return 
         * @throws IOException 
         */  
        public static String getRequestPostStr(HttpServletRequest request)  
                throws IOException {  
            byte buffer[] = getRequestPostBytes(request);  
            String charEncoding = request.getCharacterEncoding();  
            if (charEncoding == null) {  
                charEncoding = "UTF-8";  
            }  
            return new String(buffer, charEncoding);  
        }  

    说明:当请求方式为“Get”时,直接使用request.getQueryString()获取String

    当请求方式为“Post”时,读取InputStream(request.getInputStream())

  • 相关阅读:
    office文件在线预览,模仿网易邮箱在线预览的
    SQLServer加入域后无法远程连接
    c#将金额转换为大写,支持小数点,原创经典
    GridView多行标题行、改造标题行、自定义标题行完美版
    汇编语言常用指令
    Nature重磅:Hinton、LeCun、Bengio三巨头权威科普深度学习
    微软新技术证明深度学习还能更“深入”
    几个激光的驱动
    rplidar跑cartographer
    Git常用命令速查表
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/9641376.html
Copyright © 2011-2022 走看看