public static <T> Single<T> postRequest(final String uri, final Class<T> clazz, final Parameters params, final Parameters headers,
                                            final String fileFieldName, final String fileContentType, final File file) {
        return postRequest(uri, params, headers, fileFieldName, fileContentType, file).flatMap(getResponseData).map(js -> mapper.readValue(js, clazz));
    }
POST HTTP request and deserialize JSON answer

@param uri             the URI to request
@param clazz           the class to deserialize the JSON result to
@param params          the parameters to add to the GET request
@param headers         the headers to add to the GET request
@param fileFieldName   the name of the file field name
@param fileContentType the content-type of the file
@param file            the file to include in the request
@param <T>             the type to deserialize to
@return a single with the deserialized value, or an IO exception
main/src/main/java/cgeo/geocaching/network/Network.java