public <T> Response<T> postJson(Endpoint endpoint, Object requestMessage, Class<T> responseClass, NameValuePair... headers) throws IOException {
        if (requestMessage == null) {
            return post(endpoint, responseClass, headers);
        } // deal with null case

        // Create the request
        HttpPost post = new HttpPost(endpoint.url());
        post.setHeaders(combineHeaders(headers));

        // Add the request message if there is one
        post.setEntity(serialiseRequestMessage(requestMessage));

        // Send the request and process the response
        try (CloseableHttpResponse response = httpClient().execute(post)) {
            T body = deserialiseResponseMessage(response, responseClass);
            return new Response<>(response.getStatusLine(), body);
        }
    }
public < T > Response < T > postJson ( Endpoint endpoint , Object requestMessage , Class < T > responseClass , NameValuePair ... headers ) throws IOException { if ( requestMessage == null ) { return post ( endpoint , responseClass , headers ) ; } HttpPost post = new HttpPost ( endpoint . url ( ) ) ; post . setHeaders ( combineHeaders ( headers ) ) ; post . setEntity ( serialiseRequestMessage ( requestMessage ) ) ; try ( CloseableHttpResponse response = httpClient ( ) . execute ( post ) ) { T body = deserialiseResponseMessage ( response , responseClass ) ; return new Response < > ( response . getStatusLine ( ) , body ) ; } }
Sends a POST request and returns the response.

@param endpoint       The endpoint to send the request to.
@param requestMessage A message to send in the request body. Can be null.
@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.