Search code examples
javaapachehttpapache-commonsapache-commons-httpclient

When should the HttpClient be closed?


I am building an Android app that will fire multiple HTTP requests (say a request every second) to a server to fetch data. What are the best practices I must follow?

Should I create and close the client after each request, like the following?

CloseableHttpClient httpClient = HttpClientBuilder.create().build();

try {
    HttpPost request = new HttpPost("http://yoururl");
    StringEntity params = new StringEntity(json.toString());
    request.addHeader("content-type", "application/json");
    request.setEntity(params);
    httpClient.execute(request);
// handle response here...
} catch (Exception ex) {
    // handle exception here
} finally {
    httpClient.close();
}

Or should I create a client initially, use it for all requests and then finally close it when I'm done with it?


Solution

  • The idea of closing your HttpClient is about releasing the allocated ressources. Therefore, It depends on how often you plan on firing those HTTP requests.

    Keep in mind that firing a request every 10 seconds is considered an eternity ;)