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