2017-11-14 15 views

答えて

1

私はこのようなAPIについて認識していません。

public class WikipediaURLFactory { 

    private static final String WIKIPEDIA_BASE_URL = "https://en.wikipedia.org/wiki/"; 

    public static String createWikiURLString(String search) { 
     return WIKIPEDIA_BASE_URL + search; 
    } 

    public static URL createWikiURL(String search) throws MalformedURLException { 
     return new URL(createWikiURLString(search)); 
    } 

    public static Status accessPage (URL url) throws IOException { 
     Status status = new Status(); 
     status.setUrl(url); 
     status.setExists(true); 

     if (getResponseCode(url) == 404) { 
      status.setExists(false); 
     } 

     return status; 
    } 

    private static int getResponseCode (URL url) throws IOException { 
     HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
     connection.setRequestMethod("GET"); 
     connection.connect(); 

     return connection.getResponseCode(); 
    } 
} 

あなたのステータスクラス:あなたはあなた自身のファクトリメソッドを作ることができますしかし

private boolean exists; 
    private URL url; 

    public Status() {} 

    public boolean isExists() { 
     return exists; 
    } 

    public void setExists(boolean exists) { 
     this.exists = exists; 
    } 

    public URL getUrl() { 
     return url; 
    } 

    public void setUrl(URL url) { 
     this.url = url; 
    } 

そしてここでは、メインのテストクラスである:

public class Main { 

    public static void main(String[] args) { 

     try { 

      // this will return true 
      URL url = WikipediaURLFactory.createWikiURL("JavaScript"); 
      Status status = WikipediaURLFactory.accessPage(url); 
      String negation = status.isExists() ? "" : "doesn't"; 
      System.out.println("The webpage " + url + " " + negation + " exist"); 

      // this will return false as page JafaScript doesn't exist on wiki 
      url = WikipediaURLFactory.createWikiURL("JafaScript"); 
      status = WikipediaURLFactory.accessPage(url); 
      negation = status.isExists() ? "" : "doesn't"; 
      System.out.println("The webpage " + url + " " + negation + " exist"); 

     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

} 

あなたはステータス内の他の必要なフィールドを追加することができあなたがそれらを必要とするなら、クラス(例えば、ページの内容)。これは単なる例です。

+0

私が探している情報がwikidataデータベースに存在するかどうかを確認するために、もっと改善されたものを使用したいと思います。 –

+0

答えが更新されたので、ページに到達できない場合はブール値を返します。あなたはそこから自分自身を構築することができます。公開されているAPIは認識していません – user3362334