2012-05-11 17 views
4

私は、URLのリストにヒットし、そのURLが存在するかどうかを最初に知る必要があるJavaプログラムを作成しています。私はこれについて行く方法を知らないし、使用するJavaコードを見つけることができません。URLが有効かどうかを確認してください。

URLは次のようである:

http: //ip:port/URI?Attribute=x&attribute2=y 

これらが有効な場合は、XMLを返す社内ネットワーク上のURLです。

誰かがコードを提案できますか?

+0

有効ではありませんか? – NimChimpsky

答えて

1

接続を開き、応答に有効なXMLが含まれているかどうかを確認しますか?あまりにも明白だったのですか、他の魔法を探していますか?

1

あなたはのHttpURLConnectionを使用して、エラー状態をチェックすることもできます。

HttpURLConnection javadoc

5
  1. 不正な形式のURLがあなたの例外を提供します。
  2. あなたがURLが有効であるかどうかを知るには、URLをヒットする必要があります。他の方法はありません。

URLからヘッダーを要求することで、負荷を軽減できます。

9

httpURLConnectionを使用してください。有効でない場合は、何も戻ってこないでしょう。

HttpURLConnection connection = null; 
try{   
    URL myurl = new URL("http://www.myURL.com");   
    connection = (HttpURLConnection) myurl.openConnection(); 
    //Set request to header to reduce load as Subirkumarsao said.  
    connection.setRequestMethod("HEAD");   
    int code = connection.getResponseCode();   
    System.out.println("" + code); 
} catch { 
//Handle invalid URL 
} 

また、CMDのようにpingして応答を記録することもできます。

String myurl = "google.com" 
String ping = "ping " + myurl 

try { 
    Runtime r = Runtime.getRuntime(); 
    Process p = r.exec(ping); 
    r.exec(ping);  
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    String inLine; 
    BufferedWriter write = new BufferedWriter(new FileWriter("C:\\myfile.txt")); 

    while ((inLine = in.readLine()) != null) {    
      write.write(inLine); 
      write.newLine(); 
     } 
      write.flush(); 
      write.close(); 
      in.close();    
    } catch (Exception ex) { 
     //Code here for what you want to do with invalid URLs 
    } 
} 
+0

最初の方法は私のために働いています...このヘルプのおかげです..今私は直接私は他のブラウザで開いて同じ方法で私のブラウザでリンクを開いています。直接フルリンクを与えることによって....再度ありがとう – Noman

+0

私のためにも助けてください。 – d3m0li5h3r

3
package com.my; 

import java.io.IOException; 
import java.io.InputStream; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.UnknownHostException; 

public class StrTest { 

public static void main(String[] args) throws IOException { 

    try { 
     URL url = new URL("http://www.yaoo.coi"); 
     InputStream i = null; 

     try { 
      i = url.openStream(); 
     } catch (UnknownHostException ex) { 
      System.out.println("THIS URL IS NOT VALID"); 
     } 

     if (i != null) { 
      System.out.println("Its working"); 
     } 

    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
      } 
     } 
    } 

出力:このURLは、あなたが安らかなAPIを文書化しない方法

関連する問題