-4
ウィキペディアのURLをJava言語で構築するにはどうすればよいですか? たとえば、「javascript」について検索すると、URLは次のようになります。https://en.wikipedia.org/wiki/JavaScriptウィキペディアのURLを作成する
使用できるAPIはありますか?
ウィキペディアのURLをJava言語で構築するにはどうすればよいですか? たとえば、「javascript」について検索すると、URLは次のようになります。https://en.wikipedia.org/wiki/JavaScriptウィキペディアのURLを作成する
使用できるAPIはありますか?
私はこのような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();
}
}
}
あなたはステータス内の他の必要なフィールドを追加することができあなたがそれらを必要とするなら、クラス(例えば、ページの内容)。これは単なる例です。
私が探している情報がwikidataデータベースに存在するかどうかを確認するために、もっと改善されたものを使用したいと思います。 –
答えが更新されたので、ページに到達できない場合はブール値を返します。あなたはそこから自分自身を構築することができます。公開されているAPIは認識していません – user3362334