ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 使用 RESTful API 的 RESTEasy 客户端 > 原文: [https://howtodoinjava.com/resteasy/resteasy-client-for-consuming-rest-apis/](https://howtodoinjava.com/resteasy/resteasy-client-for-consuming-rest-apis/) 到目前为止,在此博客中,我们已经学习了有关构建服务器端组件 [**RESTful Web 服务**](//howtodoinjava.com/restful-web-service/ "restful-web-service")的知识。 在本文中,我们将学习构建一个 RESTful 客户端,以使用先前文章中编写的 Web 服务。 我将重新使用为 [RESTEasy + JAXB xml 示例](//howtodoinjava.com/resteasy/resteasy-jaxb-xml-example/ "RESTEasy + JAXB xml example")编写的代码库。 我将要访问的 API 已定义。 ```java @GET @Path("/users/{id}") public User getUserById (@PathParam("id") Integer id) { User user = new User(); user.setId(id); user.setFirstName("demo"); user.setLastName("user"); return user; } @POST @Path("/users") public User addUser() { //Some code } ``` 要使用 JAX-RS RESTEasy 的客户端功能构建 RESTful 客户端,请遵循给定的说明。 **1)验证以下 RESTEasy 依赖项** ```java <!-- core library --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.3.1.GA</version> </dependency> <dependency> <groupId>net.sf.scannotation</groupId> <artifactId>scannotation</artifactId> <version>1.0.2</version> </dependency> <!-- JAXB provider --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxb-provider</artifactId> <version>2.3.1.GA</version> </dependency> ``` **2)编写客户端代码以访问 GET API,如下所示** ```java public static void sampleResteasyClientGETRequest() throws Exception { //Define the API URI where API will be accessed ClientRequest request = new ClientRequest("http://localhost:8080/RESTfulDemoApplication/user-management/users/10"); //Set the accept header to tell the accepted response format request.accept("application/xml"); //RESTEasy client automatically converts the response to desired objects. //This is how it is done. //Populate the response in user object ClientResponse<User> response = request.get(User.class); //First validate the api status code int apiResponseCode = response.getResponseStatus().getStatusCode(); if(response.getResponseStatus().getStatusCode() != 200) { throw new RuntimeException("Failed with HTTP error code : " + apiResponseCode); } //Get the user object from entity User user = response.getEntity(); //verify the user object System.out.println(user.getId()); System.out.println(user.getFirstName()); System.out.println(user.getLastName()); } ``` 3)编写客户端代码以访问 POST API,如下所示 ```java public static void sampleResteasyClientPostRequest() throws Exception { User user = new User(); user.setId(100); user.setFirstName("Lokesh"); user.setLastName("Gupta"); StringWriter writer = new StringWriter(); JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.marshal(user, writer); //Define the API URI where API will be accessed ClientRequest request = new ClientRequest("http://localhost:8080/RESTfulDemoApplication/user-management/users"); //Set the accept header to tell the accepted response format request.body("application/xml", writer.getBuffer().toString()); //Send the request ClientResponse response = request.post(); //First validate the api status code int apiResponseCode = response.getResponseStatus().getStatusCode(); if(response.getResponseStatus().getStatusCode() != 201) { throw new RuntimeException("Failed with HTTP error code : " + apiResponseCode); } } ``` **祝您学习愉快!**