2012-05-15 42 views
2

我想弄清楚如何检查URL是否404'或如果它是超时的逻辑。我似乎无法弄清楚!Jsoup,确定之间的超时和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不是如果一个页面timesout。我该如何检查?

回答

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