Uso de RestTemplate

Estoy tratando de usarRestTemplate para hacer unaPUT. Por alguna razón no puedo reproducir elPUT Creé usandocurl Que pasa sin problemas.

Aquí está micurl Llamada que tiene éxito y devuelve 200:

curl https://www.exampe.com \
  -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <bearer-token>" \
  -v \
  -d '{"json":"object"}'

Y aquí está el código de Java que intentó replicar esto.curl llamada. Este código en mi caso tiraráHttpClientErrorException con status = 406:

boolean result = false; 
String url = "https://www.example.com";
String json = "{\"json\":\"object\"}";

RestTemplate rest = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("Authorization", String.format("Bearer %s", authToken));

HttpEntity<String> requestEntity = new HttpEntity<String>(json, headers);
ResponseEntity<String> responseEntity = 
        rest.exchange(url, HttpMethod.PUT, requestEntity, String.class);

HttpStatus status = responseEntity.getStatusCode();

¿Cuál es la diferencia entre estas peticiones? ¿Cómo converger la versión de Java a lacurl ¿versión?

Respuestas a la pregunta(1)

Su respuesta a la pregunta