我正在尝试使用Jersey创建一个Web API。我正在尝试运行类似于此的方法:
WebResource r = c.resource("http://localhost:8080/Jersey/rest/contacts");
但是Jersey 2.x没有WebResource
或Resource
类。那么我可以使用哪个类来将uri http://localhost:8080/Jersey/rest/contacts
作为参数?
这将在ContactClient
类
答案 0 :(得分:9)
查看Jersey文档中的Client API。使用Jersey 2.x,您需要使用WebTarget
。例如
Client client = ClientBuilder.newClient();
WebTarget target = client.target(url);
Response response = target.request().get();
请参阅我链接的文档以获取更多信息和示例。
答案 1 :(得分:0)
JAX-RS 2.0客户端API : JAX-RS 2.0引入了 新客户端API ,因此您可以向远程发出 http请求 RESTful Web服务。
这是一个“流畅”的请求构建API,具有真正的 3个主要类:
1。提出一个简单的客户请求
Jersey 1.x方式:
Client client = Client.create();
WebResource webResource = client.resource(restURL).path("myresource/{param}");
String result = webResource.pathParam("param", "value").get(String.class);
JAX-RS 2.0方式:
Client client = ClientFactory.newClient();
WebTarget target = client.target(restURL).path("myresource/{param}");
String result = target.pathParam("param", "value").get(String.class);
2。将实体附加到请求
Jersey 1.x方式:
Client client = Client.create();
WebResource webResource = client.resource(restURL);
ClientResponse response = webResource.post(ClientResponse.class, "payload");
JAX-RS 2.0方式:
Client client = ClientFactory.newClient();
WebTarget target = client.target(restURL);
Response response = target.request().post(Entity.text("payload"), Response.class);