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

具体来说,我目前使用的是RESTeasy Client 3.0.14版,因此我使用了精美的interface-proxy系统进行呼叫。我试图产生这样的东西:
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/

10-11 14:23