JavaでURLをパースする方法
提供: Java入門
スポンサーリンク
JavaでURLをパースするには、正規表現を頼らずに、URLクラスを用いて、簡単にパースできます。スプリットなどを使用して、がんばって分解する必要はありません。
読み方
- URL
- ゆーあーるえる
概要
java.netで提供されるURLクラスを使用して、URLを簡単に分解できます。 URLに含まれるベーシック認証のユーザ名とパスワードも簡単に取得できます。
parseurl1
ソースコード parseurl1.java
/* * parseurl1.java * Copyright (C) 2015 kaoru <kaoru@bsd> */ import java.net.*; public class parseurl1 { public static void main(String[] args) { try { URL url = new URL("http://user:password@foo.com:80/path/to?k1=v1&k2=v2#help"); System.out.println("protocol = " + url.getProtocol() ); System.out.println("UserInfo = " + url.getUserInfo() ); System.out.println("authority = " + url.getAuthority() ); System.out.println("host = " + url.getHost() ); System.out.println("port = " + url.getPort() ); System.out.println("path = " + url.getPath() ); System.out.println("query = " + url.getQuery() ); System.out.println("filename = " + url.getFile() ); System.out.println("ref = " + url.getRef() ); } catch (MalformedURLException e) { System.out.println(e); } } }
コンパイル
javac parseurl1.java
実行例
$ java parseurl1 protocol = http UserInfo = user:password authority = user:password@foo.com:80 host = foo.com port = 80 path = /path/to query = k1=v1&k2=v2 filename = /path/to?k1=v1&k2=v2 ref = help
間違っているURLを渡す例
URL url = new URL("foo://aaaaaaaaaaaaaaaaaaaaa");
上記の場合、以下のエラーになります。
java.net.MalformedURLException: unknown protocol: foo
URL url = new URL("foo");
上記の場合、以下のエラーになります。
java.net.MalformedURLException: unknown protocol: foo
URL url = new URL("http://localhost:port");
上記の場合、以下のエラーになります。
java.net.MalformedURLException: For input string: "port"
URL url = new URL("http://localhost:9999999999");
上記の場合、以下のエラーになります。
java.net.MalformedURLException: For input string: "port"
URL url = new URL("http://localhost:-1");
-1番ポートを指定した場合、エラーにならず、ポート番号が-1になります。-1でいいのか、TCP/IP...。
関連項目
ツイート
スポンサーリンク