This question already has answers here:
How to get full REST request body using Jersey?

(5个答案)


上个月关闭。





我是Java Web编程的新手,正在阅读下面的使用Spring和swagger的代码。我无法理解如何使用HTTP POST请求正文中的数据填充jsonRequestBody参数。我从某个地方读到,应该使用@RequestBody批注来读取请求正文,这与您使用@PathParam@QueryParam的方式非常相似,但是在这种情况下不使用它。 Spring如何弄清楚如何解析HTTP请求正文并将其放在jsonRequestBody中?

    @POST
    @Path("{transactionId}")
    @Consumes({ MediaType.APPLICATION_JSON })
    @Produces({ MediaType.APPLICATION_JSON })
    @ApiOperation(value = "Update Running balances for Journal Entries", notes = "This API calculates the running balances for office. If office ID not provided this API calculates running balances for all offices. \n" + "Mandatory Fields\n" + "officeId")
    @ApiImplicitParams({@ApiImplicitParam(paramType = "body", value = "body", dataType = "body", dataTypeClass = JournalEntriesApiResourceSwagger.PostJournalEntriesTransactionIdRequest.class)})
    @ApiResponses({@ApiResponse(code = 200, message = "", response = JournalEntriesApiResourceSwagger.PostJournalEntriesTransactionIdResponse.class)})
    public String createReversalJournalEntry(@ApiParam(hidden = true) final String jsonRequestBody, @PathParam("transactionId") @ApiParam(value = "transactionId") final String transactionId,
            @QueryParam("command") @ApiParam(value = "command") final String commandParam) {
    //....
  }

最佳答案

我在以下位置找到了答案:https://stackoverflow.com/a/1773308/9867856。事实证明,只要该方法用@POST标记,该方法的String参数将自动使用请求正文中的数据填充。

10-05 22:10