有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在SocketTimeoutException之后自动重新连接?

我设置了连接超时

HttpClient httpClient = org.apache.http.impl.client.HttpClientBuilder.create().build();

HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setConnectTimeout((int) TimeUnit.MINUTES.toMillis(2));
factory.setReadTimeout((int) TimeUnit.MINUTES.toMillis(2));
factory.setHttpClient(httpClient);

RestTemplate restTemplate = new RestTemplate(factory);

我想在SocketTimeoutException之后再次发送5次请求。我怎样才能自动做到这一点


共 (1) 个答案

  1. # 1 楼答案

    int tries, maxRetries = 5;
    Connection connection;
    do {
        try {
            // initialize connection
        } catch (SocketTimeoutException ex) {
            ++tries;
            if (maxRetries < tries) {
                // exit 
            }
            // sleep for some time between attempts
        }
    } while (connection == null);
    

    你可以像上面那样使用一个简单的do-while循环