超时

编辑

可以通过在构建 RestClient 时(通过其构建器)提供 RequestConfigCallback 的实例来配置请求超时。此接口具有一个方法,该方法接收 org.apache.http.client.config.RequestConfig.Builder 的实例作为参数,并具有相同的返回类型。可以修改请求配置构建器,然后返回它。在下面的示例中,我们增加了连接超时时间(默认为 1 秒)和套接字超时时间(默认为 30 秒)。

RestClientBuilder builder = RestClient.builder(
    new HttpHost("localhost", 9200))
    .setRequestConfigCallback(
        new RestClientBuilder.RequestConfigCallback() {
            @Override
            public RequestConfig.Builder customizeRequestConfig(
                    RequestConfig.Builder requestConfigBuilder) {
                return requestConfigBuilder
                    .setConnectTimeout(5000)
                    .setSocketTimeout(60000);
            }
        });

也可以使用 RequestOptions 为每个请求设置超时,这将覆盖 RestClient 的 customizeRequestConfig。

RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(5000)
    .setSocketTimeout(60000)
    .build();
RequestOptions options = RequestOptions.DEFAULT.toBuilder()
    .setRequestConfig(requestConfig)
    .build();