feign +http 客户端如何设置连接超时和套接字超时?

发布时间:2021-03-04 05:41
  @Bean
    public ApacheHttpClient client() {
        RequestConfig config = RequestConfig.custom().setConnectTimeout(30)
                .setSocketTimeout(30).build();

        CloseableHttpClient httpClientObject = HttpClientBuilder.create()
                .setDefaultRequestConfig(config)
                .build();
        return new ApacheHttpClient(httpClientObject);
    }


@Autowired
    public HTTPRequestClient(Decoder decoder, Encoder encoder, ApacheHttpClient client) {
        this.client = client;

        setHttpRequestAdaptor(Feign.builder()
                .client(client)
                .encoder(encoder)
                .decoder(decoder)
                .logLevel(feign.Logger.Level.FULL)
                .target(Target.EmptyTarget.create(HTTPRequestAdaptor.class)));

    }

连接超时和套接字超时不起作用。帮助需要哪些属性与 feign http 客户端一起使用?我一直在用

feign.httpclient.enabled=true
feign.httpclient.connection-timeout=2

但是没有用。

回答1

您可以添加一个 .options(new Request.Options(30, 30)) 给假装建造师

如果失败,那么可能会将整个班级添加到问题中。 this.client = client 部分代码看起来有点奇怪。