У меня странная проблема при работе с RestTemplate.Я использую определенный REST API и хочу обновить что-то, используя PUT.Таким образом, например, Почтальон я отправляю этот запрос:
PUT http://fake/foobar/c/123 with a certain body
Это обновление через Почтальон успешно.Если теперь я выполняю тот же вызов в Java через RestTemplate
, я получаю метод 405 Not Allowed:
HttpHeaders headers = createHeader();
HttpEntity<Offer> httpEntity = new HttpEntity<>(bodyEntity, headers);
String url = "http://fake/foobar/c/123"; //Created dynamically, but here pasted for sake of simplicity
RestTemplate restTemplate = new RestTemplate(...);
ResponseEntity<OfferResponse> response = restTemplate.exchange(url, HttpMethod.PUT, httpEntity, OfferResponse.class);
...
Я сравнивал URL снова и снова.Если я скопирую URL-адрес, зарегистрированный в консоли, и скопирую его в Postman, я смогу выполнить обновление успешно.Я также сравнил заголовки и все.Все равно, как это делается через Почтальон.
Есть ли потенциальная другая причина для такого поведения (другая причина, чем я слишком глуп, сравнивая заголовки и т. Д. И что-то упустив)?Другие вызовы PUT, POST и т. Д. Для этого API работают нормально, в противном случае я бы предположил, что при использовании RestTemplate
существует общая проблема