2013-11-27 3 views
1

연결 목록이 "살아 있는지"또는 "죽었는지"확인하기 위해 URL 목록을 테스트 할 때이 사이트 (www.abbapregnancy.org)를 실행 한 다음 정보가없는 사이트가 비어 있습니다 . 이런 사이트를 테스트하기 위해 if 문을 어떻게 만들 수 있습니까? 의견을 말하고 제안 해주십시오. 내 코드는 현재 다음과 같습니다 :URL 연결 테스트 url 연결

try 
        {// Test URL Connection 
        URL url = new URL("http://www."+line); 
        URLConnection conn = url.openConnection(); 
        conn.setDoOutput(true); 
        wr = new OutputStreamWriter(conn.getOutputStream()); 
        wr.flush(); 

        rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

        while(!rd.ready()) {} 

        if(rd.ready()) 
        { 
         //write to output file 
         System.out.println("Good URL: " + line); 
         urlAlive ++; 
         //increment alive line to Alive url file 
         aliveUrl += (line + System.getProperty("line.separator"));               
        } 
        else // increment dead url 
         urlDead++; 
        } 
        catch (Exception e) 
        // increment dead url 
         { 
          urlDead++; 
         } 
+0

코드에서 당신이 '//www.www.abbapregnancy.org 시간 TTP'에 연결하려고 나타납니다. 'www.'를 삭제 해보세요. 사이트 주소의 처음부터 – TheSuccessor

+0

실제로 목록에서 (abbapregnancy.org) 그냥. 나는 위의 설명에 자의적으로 (www)를 추가했습니다 –

답변

1

"살아있는"또는 "죽은 것"이상을 확인하고 싶습니다. 살아 있다면 콘텐츠가 비어 있는지 알고 싶습니까?

웹 사이트를 확인하려면 http 연결을 사용하는 것이 좋습니다. alive/dead 상태의 경우 연결 시도는 죽은 경우 예외를 throw합니다. 살아 있다면 상태 코드를 사용하여 요청이 실제로 성공했는지 확인할 수 있습니다. 마지막으로 content-length 헤더를 사용하여 사이트가 가동되었지만 실제로 빈 콘텐츠를 반환하는지 확인할 수 있습니다. 이 같은 예를 들어

public void checkURL(URL url) throws IOException { 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setRequestMethod("GET"); 
    System.out.println(String.format("Fetching %s ...", url)); 
    try { 
     int responseCode = conn.getResponseCode(); 
     if (responseCode == 200) { 
      System.out.println(String.format("Site is up, content length = %s", conn.getHeaderField("content-length"))); 
     } else { 
      System.out.println(String.format("Site is up, but returns non-ok status = %d", responseCode)); 
     } 
    } catch (java.net.UnknownHostException e) { 
     System.out.println("Site is down"); 
    } 
} 
0
public static boolean IsReachable(Context context, String check_url) { 
    // First, check we have any sort of connectivity 
    final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    final NetworkInfo netInfo = connMgr.getActiveNetworkInfo(); 
    boolean isReachable = false; 

    if (netInfo != null && netInfo.isConnected()) { 
     // Some sort of connection is open, check if server is reachable 
     try { 

      URL url = new URL(check_url); 

      // URL url = new URL("http://192.168.100.93/office_com/www/api.php/office_com/Logins/SignUp?api_user=endpoint"); 
      //URL url = new URL("http://10.0.2.2"); 
      HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
      urlc.setRequestProperty("User-Agent", "Android Application"); 
      urlc.setRequestProperty("Connection", "close"); 
      urlc.setConnectTimeout(10 * 1000); 
      try { 
       urlc.connect(); 
       System.out.println("-----fffff"); 
      } catch (Exception e) { 

       System.out.println("-----fffff " + e); 

      } 
      isReachable = (urlc.getResponseCode() == 200); 
     } catch (IOException e) { 

     } 
    } 

    return isReachable; 
} 
+0

이것은 git 허브 링크입니다 https://github.com/putulputul/CheckServerConnection – putulputul