Как использовать собственный ApacheHttpClient с Feign?

Я попытался добавить собственный HttpClient через конфигурацию:

 @Bean
 public CloseableHttpClient httpClient() {
    RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(15000)
                .setConnectionRequestTimeout(15000)
                .build();

    Header header = new BasicHeader("Test", "Test");
    Collection<Header> headers =Arrays.asList(header);        
    return HttpClients.custom()
                .setDefaultRequestConfig(requestConfig)
                .setDefaultHeaders(headers)
                .build();
 }

но, тем не менее, мой пользовательский добавленный заголовок по умолчанию не отображается в запросе.

Интерфейс клиента My Feign выглядит следующим образом:

@FeignClient(name = "example", 
             url = "${client.example.api}", 
             decode404 = false, 
             configuration = FeignClientConfiguration.class)
public interface ExampleFeignProxy{

    @PostMapping(path = "/create")
    @Headers("Content-Type: application/json")
    String Create(
            @RequestBody ExampleDTO exampleDto,
            @RequestHeader("access-token") String token);
}

но когда я делаю запрос к методу Create, запрос не выполняется, когда я проверяю внутри configuration.errordecoder, он показывает, что притворство добавляет дополнительный заголовок Content-Length также к запросу. Как я могу удалить заголовки по умолчанию из всех методов в моем воображаемом клиенте?

Чтобы было понятно - как показано выше, в объекте запроса должно быть только два заголовка.

  • Тип содержимого

  • Токен доступа

но Feign так или иначе добавляет Content-Length.

Есть ли где-то конфигурация, которую мне нужно установить?


person Manish Mishra    schedule 27.02.2019    source источник


Ответы (1)


На самом деле, это было недоразумение, вышеуказанная конфигурация всегда работала, я неправильно разбирал ошибку. Возвращенная ошибка была на самом деле из api.

Все, что мне нужно было сделать, это правильно указать кодировщик ошибок.

person Manish Mishra    schedule 01.03.2019