Есть ли способ передать информацию заголовка в вызове DELETE Spring RestTemplate

В Spring RestTemplate у нас есть следующие методы для удаления.

@Override
    public void delete(String url, Object... urlVariables) throws RestClientException {
        execute(url, HttpMethod.DELETE, null, null, urlVariables);
    }

    @Override
    public void delete(String url, Map<String, ?> urlVariables) throws RestClientException {
        execute(url, HttpMethod.DELETE, null, null, urlVariables);
    }

    @Override
    public void delete(URI url) throws RestClientException {
        execute(url, HttpMethod.DELETE, null, null);
    }

Ни у одного из этих методов нет места для передачи информации заголовка. Есть ли другой метод, который можно использовать для DELETE запроса с информацией заголовка?

12 голосов | спросил Zeeshan 8 Maypm15 2015, 14:44:31

2 ответа


0

Вы можете использовать метод exchange (который принимает любой тип HTTP-запроса) вместо использования delete метод:

MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
headers.add("X-XSRF-HEADER", "BlahBlah");
headers.add("Authorization", "Basic " + blahblah);
etc...

HttpEntity<?> request = new HttpEntity<Object>(headers);
restTemplate.exchange(url, HttpMethod.DELETE, request, String.class);
ответил David Lavender 8 Maypm15 2015, 15:01:22
0

Вы можете реализовать ClientHttpRequestInterceptor и установить его для своего restTemplate. В вашем перехватчике:

 @Override
public ClientHttpResponse intercept(
        HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
        throws IOException {
        @Override
        public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
            if (request.getMethod() == HttpMethod.DELETE){
                request.getHeaders().add(headerName, headerValue); 
             }

             return execution.execute(request, body);
        }
}

В вашей конфигурации:

restTemplate.setInterceptors(...)
ответил jny 8 Maypm15 2015, 18:17:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132