JAVA获取POST请求的请求头信息

本文介绍了如何使用Java从HTTP Post请求中读取并解析请求体的内容及请求头信息。通过提供的方法可以轻松地将请求体转换为字节数组或字符串,并展示了如何收集所有请求头数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	 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;
	    }

	    /**      
	     * 描述:获取 post 请求内容
	     * <pre>
	     * 举例:
	     * </pre>
	     * @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);
	    }

	    /**      
	     * 描述:获取请求头内容    
	     */
		private String getHeadersInfo(HttpServletRequest request) {
	        Map<String, String> map = new HashMap<String, String>();
	        Enumeration headerNames = request.getHeaderNames();
	        while (headerNames.hasMoreElements()) {
	            String key = (String) headerNames.nextElement();
	            String value = request.getHeader(key);
	            map.put(key, value);
	        }
	        
	        String result="";
	        for (String key : map.keySet()) {  
	        	   //System.out.println("key= "+ key + " and value= " + map.get(key));  
	        	result = result + "key= "+ key + " and value= " + map.get(key)+"\n";
	        	  }  
	        return result;
	      }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值