首页 > 解决方案 > 这些 HTTP IOExceptions 的原因可能是什么?

问题描述

我正在使用这样的 Java 代码在某个站点上执行查询:

String query( String query ){
        HttpClient client = HttpClient.newHttpClient(); 
        URI uri = ...;
        HttpRequest request = HttpRequest.newBuilder()
            .uri( uri )
            .build();
        HttpResponse<String> response;
        try {
            reqCounter++;
            response = client.send( request, BodyHandlers.ofString() );
            return response.body();
        } catch (IOException ioe ) {
            System.err.print( ioe.getMessage() );
        } catch (InterruptedException ie) {
        } 
}

在一些非常成功的请求之后,一个接一个地,对同一个站点,抛出一个 IOException,显示一条消息

每次请求前 0.1 秒到 0.3 秒的睡眠无济于事,900 次请求后的长时间睡眠(10*60 秒)也不能避免 IOException。

大约 7 天前,我一直在向网站的维护者抱怨。他们否认在这方面有任何共谋。

有没有人见过这样的事情,在没有持续人工干预的情况下获得数千个请求的最佳策略是什么?

标签: javahttp

解决方案


推荐阅读