Использования Spring RestTemplate
, буфер телом запроса устанавливается в ложное и пустого телозапрос PUT с небуферизованным RestTemplate
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setBufferRequestBody(false);
requestFactory.setConnectTimeout(60_000);
RestTemplate restTemplate = RestTemplate(requestFactory);
restTemplate.exchange(uri, HttpMethod.PUT, new HttpEntity<>(httpHeaders), Void.class);
Я получаю 411 - Length Required
код состояния в ответ. По какой-то причине Spring RestTemplate не помещает заголовок Content-Length: 0
на запрос.
В случае, если я прокомментирую requestFactory.setBufferRequestBody(false);
линия, он отлично работает. Но мне нужно это для отправки больших файлов.
UPD: просмотр журналов отладки показал нам, что этот запрос не содержит заголовок Content-Length
.
Можете ли вы добавить значения параметров к вызову 'restTemplate.exchange'? –
Обновление до HttpMethod.PUT. Но другие параметры несущественны. uri - некоторые утилиты rackspace service, httpHeaders - токен авторизации. – dmitryvim
Проблема заключается в том, что в этом запросе нет заголовка Content-Length. Проверено с помощью журнала debug resttemplate. – dmitryvim