javax.ws.rs.RedirectionException:HTTP 302在JavaEE中执行POST请求后找到

时间:2018-11-28 13:26:26

标签: rest redirect java-ee

我正在尝试使用以下代码执行POST请求:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.client.Entity;
...
Client client=ClientBuilder.newClient();
WebTarget webTarget=client.target("http://localhost:8080/blablabla");
try {
    MyResponse rp=webTarget.request(MediaType.APPLICATION_JSON).post(Entity.json(rq), MyResponse.class);
} catch (RedirectionException e) {
    System.out.println(e.getMessage());
}
client.close();

同一请求适用于RESTer,因此地址http://localhost:8080/blablabla是正确的。但是,当我运行代码时,我得到:javax.ws.rs.RedirectionException: HTTP 302 Found

1 个答案:

答案 0 :(得分:0)

RedirectionException提供了一种getLocation()方法,可用于检索重定向URI并执行新请求。

如果使用的是Jersey实施,则可以将以下属性添加到WebTarget中,以自动执行此任务:

webTarget.property(ClientProperties.FOLLOW_REDIRECTS, Boolean.TRUE);

此功能似乎是特定于实现的,因此您不能使用纯JAX-RS API来做到这一点。