我通过参考第三方系统,这个系统给我一些参数,但我不明白参数是什么。它是我的控制器与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);
}
答案 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#getParameterNames
或HttpServletRequest#getParameterMap
评估每个参数及其值或值。