POST 方法 REST Java 中未传递参数

Parameters not being passed in POST method REST Java

所以,我正在开发一个 Web 服务,当我在表单提交上调用 api/update 操作时,我的两个输入来自 jsp、"data" 和 "id"应该通过,我想在 POST 方法块中执行操作。

这里是调用方法的形式:

<form id="myForm" action="api/update" method="post">
id: <input type="text" id="id" name="id">
<br/>
<textarea id="data" name="data" rows="30" cols="100" placeholder="Empty File"></textarea>   
<br/>   
<button id="submit" type="submit">Submit</button>
</form>

这是 REST 代码:

@Path("update")
public class UpdateResource {

    @Context
    private UriInfo context;

    public UpdateResource() {
    }

    @Context
    private HttpServletRequest request;
    @POST
    public void putHtml() {
        String data = request.getParameter("data");
        String id = request.getParameter("id");
        System.out.println(id);   //<---- line1
        System.out.println(data); //<---- line2
        //further operations
    }
}

问题是第 1 行和第 2 行将 null 作为输出,这意味着不知何故数据未被传递。我做错了什么吗?

这是从 chrome 浏览器的网络选项卡中捕获的头文件:

与其尝试从 HttpServletRequest 获取参数,不如使用 @FormParam

@POST
public void putHtml(@FormParam("id") String id,
                    @FormParam("data") String data) {
}

原因是实体body已经在读取,导致HttpServletRequest中的参数为空。