code: public CloseableHttpResponse postJson(String url, String json, Map<String, String> reqHeaders) throws IOException {
          CloseableHttpClient req = getClient();
          CloseableHttpResponse resp = null;
          HttpPost post = new HttpPost(url);
          addHeaders(post, reqHeaders);
          post.setHeader(json, url);
          StringEntity input = new StringEntity(json, ContentType.APPLICATION_JSON);
          post.setEntity(input);
          resp = req.execute(post);
          return resp;
      }
docs: Convenient method for POSTing json strings. It is the responsibility of the
  caller to call returnClient() to ensure clean state of the pool.
  @param url
  @param json
  @param reqHeaders
  @return
  @throws IOException