Java Jersey 2.22:如何从WebTarget检索URL(带有QueryParams)?

Java Jersey 2.22:如何从WebTarget检索URL(带有QueryParams)?,java,url,jersey,Java,Url,Jersey,假设: WebTarget=client.target(“http://www.someurl.com"); target.queryParam(“id”,“1”).request().post() 当在该目标上完成请求时,如何获取使用Jersey api的完整URL?问题是,如果您查看javadoc for,您将看到WebTarget上的大多数方法调用返回一个新的WebTarget实例。所以当你这么做的时候 WebTarget target = client.target("http://ww

假设:

WebTarget=client.target(“http://www.someurl.com");

target.queryParam(“id”,“1”).request().post()


当在该目标上完成请求时,如何获取使用Jersey api的完整URL?

问题是,如果您查看javadoc for,您将看到
WebTarget
上的大多数方法调用返回一个新的
WebTarget
实例。所以当你这么做的时候

WebTarget target = client.target("http://www.someurl.com");
target.queryParam("id", "1").request().post();
System.out.println(target.getUri());
target
实例与添加查询参数的实例不同。所以你要么做,要么做

WebTarget target = client.target("http://www.someurl.com");
WebTarget newTarget = target.queryParam("id", "1");
newTarget.request().post();
System.out.println(newTarget.getUri());


是的,我这样做了,但是我没有得到附加到URL的查询参数,在我测试时对我来说很好,在发布这个答案之前,谢谢你提供的信息。这解决了我的问题。IMHO target.queryParam返回新对象是愚蠢的。我希望它能像apache一样工作。@jkb016我认为它的目的是使
WebTarget
s可重用
WebTarget target = client.target("http://www.someurl.com").queryParam("id", "1");
target.request().post();
System.out.println(target.getUri());