Apache HttpClient est une bibliothèque Java de solution robuste et complète permettant d’effectuer des opérations HTTP, notamment le service RESTful. Dans ce didacticiel, nous vous montrerons comment créer un client Java RESTful avec Apache HttpClient , pour exécuter une requête « GET » et « POST ».
1. Obtenez Apache HttpClient
Apache HttpClient est disponible dans le référentiel central Maven, il suffit de le déclarer dans votre fichier Maven
pom.xml
.
Fichier: pom.xml
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.1.1</version> </dependency>
2. Demande GET
Vérifiez à nouveau le dernier service REST.
@Path("/json/product") public class JSONService { @GET @Path("/get") @Produces("application/json") public Product getProductInJSON() { Product product = new Product(); product.setName("iPad 3"); product.setQty(999); return product; } //...
Apache HttpClient pour envoyer une requête "GET".
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; public class ApacheHttpClientGet { public static void main(String[]args) { try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet getRequest = new HttpGet( "http://localhost:8080/RESTfulExample/json/product/get"); getRequest.addHeader("accept", "application/json"); HttpResponse response = httpClient.execute(getRequest); if (response.getStatusLine().getStatusCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); } BufferedReader br = new BufferedReader( new InputStreamReader((response.getEntity().getContent()))); String output; System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { System.out.println(output); } httpClient.getConnectionManager().shutdown(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Sortie…
Output from Server .... {"qty":999,"name":"iPad 3"}
3. Requête POST
Consultez également le dernier service REST.
@Path("/json/product") public class JSONService { @POST @Path("/post") @Consumes("application/json") public Response createProductInJSON(Product product) { String result = "Product created : " + product; return Response.status(201).entity(result).build(); } //...
Apache HttpClient pour envoyer une demande "POST".
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; public class ApacheHttpClientPost { public static void main(String[]args) { try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost postRequest = new HttpPost( "http://localhost:8080/RESTfulExample/json/product/post"); StringEntity input = new StringEntity("{\"qty\":100,\"name\":\"iPad 4\"}"); input.setContentType("application/json"); postRequest.setEntity(input); HttpResponse response = httpClient.execute(postRequest); if (response.getStatusLine().getStatusCode() != 201) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); } BufferedReader br = new BufferedReader( new InputStreamReader((response.getEntity().getContent()))); String output; System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { System.out.println(output); } httpClient.getConnectionManager().shutdown(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Sortie…
Output from Server .... Product created : Product[name=iPad 4, qty=100].... === Télécharger le code source Téléchargez-le - lien://wp-content/uploads/2011/07/RESTful-Java-Client-ApacheHttpClient-Example.zip[RESTful-Java-Client-ApacheHttpClient-Example.zip](9 Ko) === Références . http://jackson.codehaus.org/%20[Jackson Site Officiel] . http://hc.apache.org/httpcomponents-client-ga/index.html[Apache HttpClient]. lien://services web/jax-rs/restfull-client-java-avec-java-net-url/[RESTful Client Java avec java.net.URL] lien://tag/client/[client]lien://tag/httpclient/[httpclient]lien://tag/jax-rs/[jax-rs]lien://tag/reposant/[reposant]