如何在SpringMVC的POST方法中获取原始响应(参数数组)?

时间:2016-02-24 04:25:51

标签: java spring-mvc

我通过参考第三方系统,这个系统给我一些参数,但我不明白参数是什么。它是我的控制器与POST方法

@Controller
@RequestMapping("/success")
public class SuccessController {



     @RequestMapping(value = "/eventlogs/logs", method = RequestMethod.POST)
        public String logs(@RequestParam("Approved") String json) {
            System.out.println("Received POST request:" + json);

            return "success";
        }
    }

但我不明白我得到的类型参数/我的例子我等待参数"Approved"并输入String
但是如何在我的方法中获得原始响应?例如像这样

@Controller
@RequestMapping("/success")
public class SuccessController {

        @RequestMapping(value = "/eventlogs/logs", method = RequestMethod.POST)
        public String logs(HttpResponse response) {
    System.out.println("Received POST request:" + response.get("p1"));
    System.out.println("Received POST request:" + response.get("p2"));
    System.out.println("Received POST request:" + response.get("p3"));
    ....
            return "success";
        }
    }

我知道第三方系统为我的方法设置了很多参数,我不想写像

这样的东西
public String logs(@RequestParam("p1") String p1, @RequestParam("p2") int p2, @RequestParam("p3") boolean p3 .......)

我想要类似JavaEE servlet的方法

@Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
            throws ServletException, IOException {
 resp.get(......)
        super.doPost(req, resp);
    }

1 个答案:

答案 0 :(得分:1)

您可以将HttpServletRequest(不是HttpServletResponse)设置为参数:

@Controller
@RequestMapping("/success")
public class SuccessController {

    @RequestMapping(value = "/eventlogs/logs", method = RequestMethod.POST)
    public String logs(HttpServletRequest req) {
        System.out.println("Received POST request:" + req.getParameter("..."));
....
        return "success";
    }
}

要了解请求中发送的所有参数,请使用HttpServletRequest#getParameterNamesHttpServletRequest#getParameterMap评估每个参数及其值或值。