繁体   English   中英

在ClientRequestFilter中附加查询参数

[英]Attaching query parameters in a ClientRequestFilter

我只需要将查询参数附加到传出请求上。 (Java EE 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM