2

URLが404であるかどうか、またはタイムアウトしているかどうかを確認する方法のロジックを理解しようとしています。わからない!

これは私がこれまでに持っているものです:

while (i < retries){
            try {
                response = Jsoup.connect(url)
                        .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                        .timeout(10000)
                        .execute();
                success = true;
                break;
            } catch (IOException e) {
                success = false;
            }
            System.out.println("Attempt " + i + " " + url);
            i++;
        }
    }

    public int getUrlStatus(){
        if(success){
            int statusCode = response.statusCode();
            return statusCode;
        }else {
            return 404;
        }
    }

私が理解できることから、これは、ページがタイムアウトした場合、404ページはそうではないことを教えてくれます。どうすればそれを確認できますか?

4

1 に答える 1

3

接続時にキャッチできSocketTimeoutExceptionます:

  try {
                response = Jsoup.connect(url)
                        .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                        .timeout(10000)
                        .execute();
                success = true;
                break;
            } catch (SocketTimeoutExceptione) {
                success = false;
            System.out.println("Timeout occured");
            }
于 2012-05-15T14:33:21.937 に答える