private <T> List<T> appelApi(String url, ApiHandler<T> handler) throws ApiReseauException {
        Answer<T> answer;
        try {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();

            InputStream inputStream = connecteur.openInputStream(url);
            try {
                parser.parse(inputStream, handler);
                answer = handler.getAnswer();
            } finally {
                try {
                    inputStream.close();
                } catch (Exception exception) {
                    LOGGER.warning(exception.getMessage());
                }
            }
        } catch (IOException ioException) {
            throw new ApiReseauException(ioException);
        } catch (SAXException saxException) {
            throw new ApiReseauException(saxException);
        } catch (ParserConfigurationException exception) {
            throw new ApiException("Erreur lors de l'appel à l'API OpenData", exception);
        }
        if (answer == null || answer.getStatus() == null || !"0".equals(answer.getStatus().getCode())) {
            throw new ApiReseauException();
        }
        return answer.getData();
    }