利用SpringBoot读取http request的基本内容

来源:互联网 发布:centos boot repair 编辑:程序博客网 时间:2024/06/04 01:23

在利用Springboot熟悉http基本内容的时候,自己弄了一个很简单的demo,将一个http请求中的内容转化成String格式打印出来。

代码如下:


其中:

1. IOUtils,用于将InputStream转化成Spring;

2. @ResponseBody注解用于返回处理结果,如果没有的话,请求页面会报不支持"GET"或者"POST"方法的错误。

3. @Controller,有Controller,这个类才会被扫描到;

4. @SpringBootApplication:在SpringBoot的启动类上,需要添加@SpringBootAapplication注解,这样才会去扫描同根目录下的其他类;

    @SpringBootApplication = @Controller + @EnableAutoConfiguration + @ComponentScan

5. @RequesterMapping注解用于映射不同的uri,具体用法参考RequestMapping这个注解本身;

6. 可以用postman发送模拟请求对这部分代码进行测试。

-------------------------------------------------- 分割线 --------------------------------------------------

package helloworld.controller;import org.apache.commons.io.IOUtils;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import java.util.Map;import java.util.Map.Entry;@Controllerpublic class RequestController {    @RequestMapping("/david")    @ResponseBody    String david() {        return "Hello, David!";    }    @RequestMapping(value = "/angus/**", method = RequestMethod.GET)    @ResponseBody    public String getProcess(HttpServletRequest request){        String retrunValue = "Hello, Angus! This is GET request!";        System.out.println("=======GET Process=======");        Map<String,String[]> requestMsg = request.getParameterMap();        Enumeration<String> requestHeader = request.getHeaderNames();        System.out.println("------- header -------");        while(requestHeader.hasMoreElements()){            String headerKey=requestHeader.nextElement().toString();            //打印所有Header值            System.out.println("headerKey="+headerKey+";value="+request.getHeader(headerKey));        }        System.out.println("------- parameter -------");        for(String key :requestMsg.keySet())        {            for(int i=0;i<requestMsg.get(key).length;i++)            {                //打印所有请求参数值                System.out.println("key="+key+";value="+requestMsg.get(key)[i].toString());            }        }        return retrunValue;    }    @RequestMapping(value = "/angus/**", method = RequestMethod.POST)    @ResponseBody    public String postProcess(HttpServletRequest request){        String retrunValue = "Hello, Angus! This is POST Request!";        System.out.println("=======POST Process=======");        Map<String,String[]> requestMsg = request.getParameterMap();        Enumeration<String> requestHeader = request.getHeaderNames();        InputStream io = null;        String body;        System.out.println("------- body -------");        try{            io = request.getInputStream();            body = IOUtils.toString(io);            //打印BODY内容            System.out.println("Request Body="+body);        }catch(IOException e){            e.printStackTrace();        }        System.out.println("------- header -------");        while(requestHeader.hasMoreElements()){            String headerKey=requestHeader.nextElement().toString();            //打印所有Header值            System.out.println("headerKey="+headerKey+";value="+request.getHeader(headerKey));        }        System.out.println("------- parameters -------");        for(String key :requestMsg.keySet())        {            for(int i=0;i<requestMsg.get(key).length;i++)            {                //打印所有请求参数值                System.out.println("key="+key+";value="+requestMsg.get(key)[i].toString());            }        }        return retrunValue;    }}
阅读全文
0 0