Как использовать пользовательский ApacheHttpClient с Feign? - PullRequest
0 голосов
/ 27 февраля 2019

Я пытался добавить пользовательский 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();
 }

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

Мой клиентский интерфейс 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 также к запросу.Как я могу удалить заголовки по умолчанию из всех методов внутри моего симулированного клиента?

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

  • Content-Type

  • Access-Token

, но Feign каким-то образом также добавляет Content-Length.

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

1 Ответ

0 голосов
/ 01 марта 2019

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

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

...