如何修改Java中POST消息的请求?
问题描述:
我正在用Java创建Webservice的开始。 我想发布一个XML请求到一个Restful Webservice,并且响应应该是一个修改后的XML。所以实际上只是请求的根元素应该被改变,它应该被添加另一个元素。如何修改Java中POST消息的请求?
请求:
<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;
}
}
答
看来你是用Jersey来暴露其余的api。正如RedFive提到的那样,在Internet上使用jersey(jax-rs实现)构建rest api的例子很多。在学习球衣的时候我做了一个小型的POC。你可以找到一个示例POST API实现here。我传递请求bean(作为Person类对象)。请求json/xml被解组到Person对象。代替返回对象请求类型,您必须返回响应对象。希望这个例子可以帮助你学习球衣。
@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状态代码,它类似于同一事物。