【问题标题】:How to modify the Request of a POST Message in Java?如何在 Java 中修改 POST 消息的请求?
【发布时间】:2017-02-14 19:52:42
【问题描述】:

我刚开始使用 Java 创建 Web 服务。 我想将 XML 请求发布到 Restful Web 服务,并且响应应该是修改后的 XML。所以实际上只是请求的根元素应该被改变,它应该被添加另一个元素。

请求:

<Request>
    <name>name</name>
</Request>

回复:

 <Response>
    <name>name</name>
    <status>created</status>
</Response>

目前我只返回请求。 修改请求的最佳/最简单方法是什么?我可以用 JAXB 做吗?

public class Resource {
    @POST
    @Produces
    @Consumes
    public Request request(Request r) {
        return r;
    }
}

【问题讨论】:

    标签: java xml rest jaxb jax-rs


    【解决方案1】:

    看来您正在使用 Jersey 来公开其余的 api。正如 RedFive 提到的,有很多示例可用于在互联网上使用 jersey(jax-rs 实现)构建 rest api。我在学习球衣的同时做了一个小的 POC。您可以找到示例 POST API 实现 here。我正在传递请求 bean(作为 Person 类对象)。请求 json/xml 被解组为 Person 对象。您必须返回 Response 对象,而不是返回 Request 类型的对象。希望这个例子可以帮助你学习球衣。

    @POST
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public Response makeRequest(Request req) {
        Response res = new Response();
        res.setName(req.getName());
        return Response.entity(res).status(Response.Status.CREATED).build();
    }
    

    我想指出一点,您可能不会在响应正文中返回状态。您返回 201(CREATED) http 状态码,它类似于同一件事。

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多