Spring中的HttpServletRequest获取post请求的参数值为null

时间:2016-10-28 13:02:26

标签: spring post request-mapping

@ResponseBody

@RequestMapping(value = {"apiRequest"}, method = {RequestMethod.POST})

public String contestApiSignUp(HttpServletRequest req) throws JSONException {
try {
    String username = req.getParameter("username");
    String firstname = req.getParameter("firstname");
    String lastname = req.getParameter("lastname");
    String password = req.getParameter("password");
    String phone = req.getParameter("phone");

这里我得到的值都是null。那就是username = null,firstname = null ...

我正在使用值来发布请求 http://localhost:8080/apiRequest.htm

username = Subhajit
firstname = Subha
...
像这样。

但我正在使用相同的代码,但

@RequestMapping(value = {"apiRequest"}, method = {RequestMethod.GET})

使用GET代替POST,然后我得到了正确的值。

2 个答案:

答案 0 :(得分:0)

当您通过POST将HTML表单发送到您的URL / apiRequest时,您是否在表单中的字段中填写了数据(用户名,名字等),或者是否将它们附加到发送的URL(例如{{1} }})?

因为使用第二种方法,您只能通过GET请求而不是POST来访问数据。第一种方法适用于POST请求。

此外,您不需要在Spring Controller中的HttpServletRequest上显式调用getParameter。

你可以这样做:

apiRequest.htm?username=test&...

答案 1 :(得分:0)

从评论中,您说您正在尝试邮递员发布请求,那么您是在构建网站还是Web服务? 您不应该在标题中发送数据。

  • 如果您正在构建一个HTML文件的网站 您可以向此控制器提交表格
  • 如果您正在构建Web服务,请更改控制器并将其保留 接受JSON(或XML -I会阻止这个)身体。跟随 这https://stackoverflow.com/a/40226580/6785908。然后从 邮差(或卷曲),发布一个json。
相关问题