【问题标题】:Jsoup + java.io.IOException: Too many redirects occurred trying to load URL http://iv4u.health/Jsoup + java.io.IOException:尝试加载 URL http://iv4u.health/ 时发生了太多重定向
【发布时间】:2019-01-10 23:01:04
【问题描述】:

我正在尝试使用 Jsoup 库(版本 1.11.3)读取域的 URL 正文 - iv4u.health,但出现“重定向过多”错误。以下是我正在使用的代码 -

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;
}
}

下面是错误的stacktrace -

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 ....

请帮助我解决这个问题。任何帮助将不胜感激。 该代码有时会起作用(主要是第一次)

【问题讨论】:

    标签: java jsoup


    【解决方案1】:

    尝试使用“http://iv4u.health”的 url 值。它对我有用,所以请尝试一下。

    【讨论】:

    • 嗨,@Dhaval Goti,我已经更新了问题中的代码。请立即尝试。
    【解决方案2】:

    看起来与网络设置有关。您是否尝试过在 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();
        }
    }
    

    【讨论】:

    • 嗨,@Darshan,我已经更新了问题中的代码。请立即尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多