在 ClientRequestFilter 中附加查询参数
Attaching query parameters in a ClientRequestFilter
我只需要将查询参数附加到传出请求上。 (JavaEE 7.0,JAX-RS 2.0)
具体来说,我目前使用的是 RESTeasy Client ver 3.0.14,所以我使用花哨的接口代理系统进行调用。我试图制作这样的东西:
myapplication/api/path?timestamp=000
与:
@Provider
public class MyRequestFilter implements ClientRequestFilter {
@Context
private HttpServletRequest servletRequest;
public void filter(ClientRequestContext requestContext) throws IOException {
servletRequest.getParameterMap().put("timestamp", new String[]{
String.valueOf(new Date().getTime())
});
}
}
我确定我也在 client.register(MyRequestFilter.class)
注册了它。随意问的问题。谢谢!
归功于@peeskillet --
像这样从 requestContext
重建 URI:
requestContext.setUri(UriBuilder.fromUri(requestContext.getUri()).queryParam("key", value).build());
您现在可以使用
查看新的查询参数
requestContext.getUri().toString();
再次确认您在创建 REST 客户端时注册了它
client.register(MyRequestFilter.class);
我只需要将查询参数附加到传出请求上。 (JavaEE 7.0,JAX-RS 2.0)
具体来说,我目前使用的是 RESTeasy Client ver 3.0.14,所以我使用花哨的接口代理系统进行调用。我试图制作这样的东西:
myapplication/api/path?timestamp=000
与:
@Provider
public class MyRequestFilter implements ClientRequestFilter {
@Context
private HttpServletRequest servletRequest;
public void filter(ClientRequestContext requestContext) throws IOException {
servletRequest.getParameterMap().put("timestamp", new String[]{
String.valueOf(new Date().getTime())
});
}
}
我确定我也在 client.register(MyRequestFilter.class)
注册了它。随意问的问题。谢谢!
归功于@peeskillet --
像这样从 requestContext
重建 URI:
requestContext.setUri(UriBuilder.fromUri(requestContext.getUri()).queryParam("key", value).build());
您现在可以使用
查看新的查询参数requestContext.getUri().toString();
再次确认您在创建 REST 客户端时注册了它
client.register(MyRequestFilter.class);