6

ジャージーで生のPOSTを取得するにはどうすればよいですか? @FormParam特定のPOSTフィールドにない生のJSONを投稿しているため、機能しません。

4

2 に答える 2

6

Jerseyには、JSONをJavaオブジェクトにマッピングするためのプロバイダーが付属しています。リクエスト本文をオブジェクトにマッピングするには、そのオブジェクトをリソースメソッドの引数として指定するだけです。生のJSONが必要な場合は、オブジェクトのタイプを指定しますjava.lang.String

@Path("/mypath")
public class MyResource {

    /**
     * @param pojo Incoming request data will be deserialized into this object
     */
    @POST
    @Path("/aspojo")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response myResourceMethod(MyPojo pojo) {
        // ....
    }

    /**
     * @param json Incoming request data will be deserialized directly into
     *    this string
     */
    @POST
    @Path("/asjson")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response myResourceMethod(String json) {
        // ....
    }
}
于 2013-02-18T16:14:53.463 に答える
1
@POST
public String handleRequest(String requestBody) {
    logger.info(requestBody);
    return "ok";
}
于 2014-05-12T21:33:06.080 に答える