如何将请求有效负载从html表单发送到java REST API?

时间:2017-04-21 05:57:04

标签: javascript java html json rest

我一直在研究一种工具,我需要通过HTML表单提交数据。此数据将通过XMLHttpRequest()在vanilla JavaScript中发送。 反过来,这将由Java REST API(基于Jersey)接收。 在我的Java @POST函数中,我接受参数@Context HttpServletRequest request

我能够通过POSTMAN(JSON格式)发送Request有效负载。我在互联网上研究了很多,但无法弄清楚如何让我的HTML表单发送请求有效负载。我不想使用@FormParam,因为表单数据总是会变化,参数不固定。

Java函数:

    @POST
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Produces(MediaType.APPLICATION_JSON)
    public Response create(@Context HttpServletRequest request) {

        Integer userId = null;
        try {
            String content = readPostBody(request);
            System.out.println("Content: " + content);
            User user = mapper.readValue(content, User.class);
            userId = dao.create(user);
        } catch (ServletException | IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (userId == null) {
            return Response.status(500).entity("User could not be created!!").build();
        } else {
            return Response.status(200).entity(userId.toString()).build();
        }
    }

HTML表单:

<div class="container">
  <div class="row" style="margin-top: 50px;">
    <form action="" method="post" id="form-data">
      <input type="text" id="firstName" placeholder="First Name"><br>
      <input type="text" id="lastName" placeholder="Last Name"><br>
      <button class="btn btn-submit" onclick="createUser()">Submit</button>
    </form>
  </div>
</div>

JavaScript:在这里尝试几件事,但这是我正在寻找的解决方案。

有人可以建议一些更有效的方法吗?否则,我将不得不修改REST API来读取我认为不是很好的编码实践的每个参数。

0 个答案:

没有答案