下面列出了javax.ws.rs.client.ClientRequestContext#setUri ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void filter(ClientRequestContext rc) throws IOException {
String method = rc.getMethod();
String expectedMethod = null;
if (rc.getAcceptableMediaTypes().contains(MediaType.valueOf("text/mistypedxml"))
&& rc.getHeaders().getFirst("THEMETHOD") != null) {
expectedMethod = MediaType.TEXT_XML_TYPE.equals(rc.getMediaType()) ? "DELETE" : "GET";
rc.setUri(URI.create("http://localhost:" + PORT + "/bookstore/books2"));
rc.setMethod(rc.getHeaders().getFirst("THEMETHOD").toString());
if ("GET".equals(expectedMethod)) {
rc.getHeaders().putSingle("Content-Type", "text/xml");
}
} else {
expectedMethod = "POST";
}
if (!expectedMethod.equals(method)) {
throw new RuntimeException();
}
if ("GET".equals(expectedMethod)) {
rc.setEntity(new Book("book", 560L));
} else {
rc.setEntity(new Book("book", ((Book)rc.getEntity()).getId() + 5));
}
}
@Override
public void filter(ClientRequestContext clientRequestContext) throws IOException {
URI updatedUri = UriBuilder.fromUri(clientRequestContext.getUri())
.path("/" + TLAsyncInvocationInterceptorFactory.getTlInt())
.build();
clientRequestContext.setUri(updatedUri);
}
@Override
public void filter(final ClientRequestContext clientRequestContext) {
requestHeaders.forEach((k, v) -> clientRequestContext.getHeaders()
.putSingle(k, v));
clientRequestContext.setUri(rebuild(clientRequestContext.getUri()));
logger.trace("Request {} {}.", clientRequestContext.getMethod(), clientRequestContext.getUri());
}
@Override
public void filter(ClientRequestContext requestContext) {
requestContext.setUri(rewriteUri(requestContext.getUri()));
}