2

私はJSoupウェブサイトに接続するために使用しています。JSoup接続タイムアウトが発生することが あります 。これが発生JSoupした場合は、接続を再試行し、3回目に失敗すると、配列リストに文字列を追加します。

現時点での私のコードは次のとおりです。

try {
        Document doc = Jsoup.connect(sitemapPath)
                .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                .timeout(10000)
                .get();

        Elements element = doc.select("loc");
        return element;
    } catch (IOException e) {
        return null;
    }

whileループで何かをすることを考えていましたが、要素を返さなければならないので、これを行う方法がわかりません。

4

2 に答える 2

7
    ArrayList<String> l = new ArrayList();
    Document doc = null;
    int i = 0;
    boolean success = false;

    while( i < 3){
        try {
            doc = Jsoup.connect(sitemapPath).get();
            success = true;
            break;
        } catch (SocketTimeoutException ex){
            l.add("text...");               
        }
        catch (IOException e) {
        }           
        i++;
    }

    if(success){
        // Selector code ...
        Elements element = doc.select("loc");
    }
于 2012-05-09T02:29:46.923 に答える