gpt4 book ai didi

java - Jersey 从 ClientResponse 转换为 Response

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:14 25 4
gpt4 key购买 nike

我目前正在使用 Jersey 作为代理 REST api 来调用另一个 RESTful 网络服务。一些调用将在我的服务器中以最少的处理来回传递。

有没有办法干净地做到这一点?我正在考虑使用 Jersey Client 进行 REST 调用,然后将 ClientResponse 转换为 Response。这是可能的还是有更好的方法来做到这一点?

一些示例代码:

@GET
@Path("/groups/{ownerID}")
@Produces("application/xml")
public String getDomainGroups(@PathParam("ownerID") String ownerID) {
WebResource r = client.resource(URL_BASE + "/" + URL_GET_GROUPS + "/" + ownerID);
String resp = r.get(String.class);
return resp;
}

如果响应始终成功,则此方法有效,但如果另一台服务器上出现 404,我将不得不检查响应代码。换句话说,有没有简单的方法来返回我得到的响应?

最佳答案

据我所知,没有方便的方法。你可以这样做:

public Response getDomainGroups(@PathParam("ownerID") String ownerID) {
WebResource r = client.resource(URL_BASE + "/" + URL_GET_GROUPS + "/" + ownerID);
ClientResponse resp = r.get(ClientResponse.class);
return clientResponseToResponse(resp);
}

public static Response clientResponseToResponse(ClientResponse r) {
// copy the status code
ResponseBuilder rb = Response.status(r.getStatus());
// copy all the headers
for (Entry<String, List<String>> entry : r.getHeaders().entrySet()) {
for (String value : entry.getValue()) {
rb.header(entry.getKey(), value);
}
}
// copy the entity
rb.entity(r.getEntityInputStream());
// return the response
return rb.build();
}

关于java - Jersey 从 ClientResponse 转换为 Response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com