我正在尝试使用以下代码执行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
答案 0 :(得分:0)
RedirectionException
提供了一种getLocation()
方法,可用于检索重定向URI并执行新请求。
如果使用的是Jersey实施,则可以将以下属性添加到WebTarget
中,以自动执行此任务:
webTarget.property(ClientProperties.FOLLOW_REDIRECTS, Boolean.TRUE);
此功能似乎是特定于实现的,因此您不能使用纯JAX-RS API来做到这一点。