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())

  • 相关阅读:
    InnoDB存储引擎介绍-(2)redo和undo学习
    InnoDB存储引擎介绍-(1)InnoDB存储引擎结构
    MySQL共享表空间概念
    MySQL压力测试(1)-mysqlslap
    MySQL5.6复制技术(4)-MySQL主从复制过滤参数
    MySQL5.6复制技术(3)-MySQL主从复制线程状态转变
    MySQL5.6复制技术(2)-主从部署以及半同步配置详细过程
    vue 子组件 $emit方法 调用父组件方法
    es聚合后排序
    java比较两个小数的大小
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/9641376.html
Copyright © 2011-2022 走看看