Hello,
J'ai fait une requête avec curl qui est fonctionnelle très très bien !
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
 
curl --location --request GET 'https://login.microsoftonline.com/0124dee1-b390-4423-****-1b8b0e81f9d5/oauth2/v2.0/token' --header 'Content-Type: application/x-www-form-u
rlencoded' --data-urlencode 'grant_type=client_credentials' --data-urlencode 'client_id=ed46fc76-****-4d05-b90b-211bfe2e84b8' --data-urlencode 'scope=https://graph.microso
ft.com/.default' --data-urlencode 'client_secret=*****.aV5RmT=Z6Lbnc1uGMsxDN=cE_'


Mais avec restTemplate j'ai le message d'erreur :
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
 
Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.client.oauth2.model.OAuth2TokenResponse] and content type [text/html;charset=utf-8]


Mon code est :
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        headers.add(HttpHeaders.ACCEPT_CHARSET, "UTF-8");
        headers.add(HttpHeaders.ACCEPT, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        String url = securityOAuth2ClientAccessTokenURI;
 
 
        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.add("grant_type", URLEncoder.encode(securityOAuth2ClientGrantType, "UTF-8"));
        params.add("client_id", URLEncoder.encode(securityOAuth2ClientId, "UTF-8"));
        params.add("scope", URLEncoder.encode(securityOAuth2ClientScope, "UTF-8"));
        params.add("client_secret", URLEncoder.encode(securityOAuth2ClientSecret, "UTF-8"));
 
        HttpEntity<MultiValueMap<String, String>> requestBody = new HttpEntity<>(params, headers);
 
        ResponseEntity<OAuth2TokenResponse> oAuth2TokenResponse = restTemplate.exchange(url, HttpMethod.GET, requestBody, OAuth2TokenResponse.class);


Qui peut me dire c'est quoi mon erreur ?

mon restTemplate est juste :
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    @Bean
    RestTemplate restTemplate() {
        final RestTemplate restTemplate = new RestTemplate();
 
        restTemplate.getMessageConverters().add(getMappingJackson2HttpMessageConverter());
        return restTemplate;
    }
 
    public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_FORM_URLENCODED));
        return mappingJackson2HttpMessageConverter;
    }


Merci!