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

  • 相关阅读:
    第四篇--Beyond Compare4 试用期30天后
    第七篇--如何改变vs2017版的背景
    第四篇--git 上传可能出现的问题
    第六篇--MFC美化界面
    第五篇--VS2017如何生成Dll文件
    第四篇--窗体风格
    第四十八篇--数据库的增删改查
    第四十七篇--重命名包名的方法以及问题解决方法
    第三篇--如何修改exe文件版本号和文件信息
    《Java虚拟机原理图解》 1.1、class文件基本组织结构
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/9641376.html
Copyright © 2011-2022 走看看