Jsoup + java.io.IOException: слишком много перенаправлений произошло при попытке загрузить URL http://iv4u.health/ - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь прочитать тело URL для домена - iv4u.health , используя библиотеку Jsoup (версия 1.11.3), но получаю ошибку "Too many redirects". Ниже код, который я использую -

public class Example {

public static void main(String[] args) throws InterruptedException, ExecutionException {
    crawlDomain("http://iv4u.health");
}

public static void crawlDomain(String url) {
    int timeout = 30;
    RequestConfig config = RequestConfig.custom()
        .setConnectTimeout(timeout * 1000)
        .setConnectionRequestTimeout(timeout * 1000)
        .setSocketTimeout(timeout * 1000)
        .setRedirectsEnabled(false)
        .build();

    CloseableHttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
    HttpGet request = new HttpGet(url);
    CloseableHttpResponse response;
    try {
        HttpClientContext context = HttpClientContext.create();
        response = client.execute(request, context);
        int status = response.getStatusLine().getStatusCode();
        if (status >= HttpStatus.SC_MULTIPLE_CHOICES && status < HttpStatus.SC_BAD_REQUEST) {
            System.out.println(getURLBody(url));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private static String getURLBody(final String url) {
    try {
        String userAgent = "Mozilla";
        Document doc = Jsoup.connect(url)
            .userAgent(userAgent).get();
        return doc.toString();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}
}

Ниже приведена трассировка стека ошибок -

java.io.IOException: Too many redirects occurred trying to load URL http://iv4u.health/
at org.jsoup.helper.HttpConnection$Response.<init>(HttpConnection.java:717)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:751)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:773)
at ....

Пожалуйста, помогите мне в этом вопросе. Любая помощь будет принята с благодарностью. Код работает иногда, хотя (в основном в первый раз)

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Похоже, что-то делать с настройкой сети. Вы пробовали просматривать тот же URL в браузере Mozilla или Chrome?

Ниже у меня нормально работает кусок кода (с jsoup 1.11.3):

public static void main(String[] args) {
    try {
        String url = "http://iv4u.health/";
        String userAgent = "Mozilla";
        Document doc = Jsoup.connect(url)
            .userAgent(userAgent).get();
        System.out.println(doc.toString());
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
0 голосов
/ 10 января 2019

Попробуйте со значением url с "http://iv4u.health". Это работает для меня, поэтому, пожалуйста, попробуйте.

...