📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Introduction
Apache HttpClient is a powerful and flexible library for handling HTTP requests in Java. It supports various HTTP methods, including GET, POST, PUT, DELETE, and more. In this tutorial, we will focus on making a DELETE HTTP request using Apache HttpClient. DELETE requests are typically used to remove a resource from the server. We will demonstrate how to send a DELETE request and handle the response.
Maven Dependencies
To use Apache HttpClient, you need to add the following dependency to your pom.xml
file:
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 --> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.3</version> </dependency>
Example Scenario
We will create a simple Java class that sends a DELETE request to a specified URL and prints the response.
JSONPlaceholder API
We will use the JSONPlaceholder API for this example. The JSONPlaceholder API provides fake online RESTful endpoints for testing and prototyping. The URL for the DELETE endpoint is:
https://jsonplaceholder.typicode.com/posts/1
Java Class for Sending DELETE Request
Create a class named HttpClientDeleteExample
with the following code:
import org.apache.hc.client5.http.classic.methods.HttpDelete; import org.apache.hc.client5.http.classic.methods.CloseableHttpResponse; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.HttpClients; import org.apache.hc.core5.http.io.entity.EntityUtils; public class HttpClientDeleteExample { public static void main(String[] args) { String url = "https://jsonplaceholder.typicode.com/posts/1"; // Create HttpClient try (CloseableHttpClient httpClient = HttpClients.createDefault()) { // Create HttpDelete request HttpDelete request = new HttpDelete(url); // Execute the request try (CloseableHttpResponse response = httpClient.execute(request)) { // Get HttpResponse Status System.out.println("Response Code: " + response.getCode()); // Get HttpResponse Content String content = EntityUtils.toString(response.getEntity()); System.out.println("Response Content: \n" + content); } } catch (Exception e) { e.printStackTrace(); } } }
Explanation
Adding Maven Dependencies:
- The
org.apache.httpcomponents.client5:httpclient5
dependency provides the classes needed to create and execute HTTP requests using Apache HttpClient.
- The
Creating HttpClient:
CloseableHttpClient httpClient = HttpClients.createDefault();
creates an instance ofCloseableHttpClient
using the default configuration.
Creating HttpDelete Request:
HttpDelete request = new HttpDelete(url);
creates anHttpDelete
request for the specified URL.
Executing the Request:
try (CloseableHttpResponse response = httpClient.execute(request)) { ... }
executes the DELETE request and retrieves the response.
Getting HttpResponse Status:
System.out.println("Response Code: " + response.getCode());
prints the status code of the HTTP response.
Getting HttpResponse Content:
String content = EntityUtils.toString(response.getEntity());
converts the response entity to a string and prints the content.
Running the Example
To run the example, simply execute the HttpClientDeleteExample
class. You should see the status code and the response content printed in the console.
Example Output
Response Code: 200 Response Content: {}
Additional Configuration
Setting Custom Headers
You can set custom headers for the DELETE request by using the setHeader
method on the HttpDelete
object.
request.setHeader("User-Agent", "Mozilla/5.0");
Handling Redirects
By default, Apache HttpClient handles redirects automatically. You can customize this behavior by using a custom HttpClientBuilder
.
CloseableHttpClient httpClient = HttpClients.custom() .setRedirectStrategy(new DefaultRedirectStrategy() { @Override protected boolean isRedirectable(String method) { return true; } }) .build();
Setting Timeouts
You can set connection and socket timeouts by using RequestConfig
.
RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(5000) .setSocketTimeout(5000) .build(); HttpDelete request = new HttpDelete(url); request.setConfig(requestConfig);
Conclusion
Using Apache HttpClient to make a DELETE HTTP request is straightforward and flexible. By following this tutorial, you should now be able to create and execute DELETE requests, handle responses, and customize various aspects of the HTTP request and response process. Apache HttpClient provides a comprehensive set of features that make it an excellent choice for handling HTTP operations in Java applications. The JSONPlaceholder API serves as a practical and convenient source for testing and prototyping your HTTP requests.
Comments
Post a Comment
Leave Comment