假使,假设:

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

target.queryParam("id", "1").request().post();

当在该目标上完成请求时,如何使用Jersey api获取完整的URL,即http://www.someurl.com?id=1

最佳答案

问题是,如果查看WebTarget的javadoc,您将看到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());


要么

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

08-28 23:53