code: public <T> Response<T> getJson(Endpoint endpoint, Class<T> responseClass, NameValuePair... headers) throws IOException {
  
          // Create the request
          HttpGet get = new HttpGet(endpoint.url());
          get.setHeaders(combineHeaders(headers));
  
  
          // Send the request and process the response
          try (CloseableHttpResponse response = httpClient().execute(get)) {
              //System.out.println(response);
              T body = deserialiseResponseMessage(response, responseClass);
              return new Response<>(response.getStatusLine(), body);
          }
      }
docs: Sends a GET request and returns the response.
  
  @param endpoint      The endpoint to send the request to.
  @param responseClass The class to deserialise the Json response to. Can be null if no response message is expected.
  @param headers       Any additional headers to send with this request. You can use {@link org.apache.http.HttpHeaders} constants for header names.
  @param <T>           The type to deserialise the response to.
  @return A {@link Response} containing the deserialised body, if any.
  @throws IOException If an error occurs.