java - 在 ClientRequestFilter 中附加查询参数

标签 java jakarta-ee jax-rs resteasy java-ee-7

我只需要将查询参数附加到传出请求上。 (Java EE 7.0, JAX-RS 2.0)

具体来说,我目前使用的是 RESTeasy Client ver 3.0.14,所以我使用花哨的接口(interface)代理系统进行调用。我试图制作这样的东西:

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);

关于java - 在 ClientRequestFilter 中附加查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37955121/

相关文章:

java - Selenium 入门指南,我做错了什么?

google-app-engine - AppEngine 的 RESTFul 服务框架

java - Jersey 如何迭代参数?

java - 无条件布局,来自 View 适配器 : Should use View Holder pattern 的膨胀

java - 在存储在 XML 中的对象周围使用无类型包装器类,这不好吗?

java - 安卓中的包

java - 从 Servlet 发出 URL 请求并保留 Header 信息

web-services - Apache Tomcat (6.x) SessionID 放置

java - 远程访问 Liferay 内容 给出异常 权限检查器未初始化

java - org.glassfish.jersey.client.ClientProperties 超时在 WildFly 上不起作用