javaでURLのリンクとパラメータを解析する方法
Java では、URL リンクとパラメータを解析するために java.net.URL クラスと java.net.URLConnection クラスを使用できます。
まずURLクラスを用いてURLオブジェクトを作成し、そのメソッドを用いてURLの各部分を以下のように取得することができます。
URL url = new URL("https://www.example.com/path?param1=value1¶m2=value2");
String protocol = url.getProtocol(); // 获取协议部分(https)
String host = url.getHost(); // 获取主机部分(www.example.com)
int port = url.getPort(); // 获取端口号(-1表示默认端口)
String path = url.getPath(); // 获取路径部分(/path)
String query = url.getQuery(); // 获取查询参数部分(param1=value1¶m2=value2)
パラメータ部分に含まれる個別のパラメータ値を取得する必要がある場合は、URLDecoder クラスを使用してデコードできます。
String[] params = query.split("&");
for (String param : params) {
String[] keyValue = param.split("=");
String key = URLDecoder.decode(keyValue[0], "UTF-8");
String value = URLDecoder.decode(keyValue[1], "UTF-8");
System.out.println(key + ": " + value);
}
また、URLとネットワーク接続してコンテンツを取得する必要がある場合は、URLConnectionクラスを使用できます。例を以下に示します。
URL url = new URL("https://www.example.com");
URLConnection connection = url.openConnection();
connection.connect();
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
inputStream.close();
上記のサンプルコードを使ってURLリンクの各部分とパラメータ値をパースしたり、ネットワーク接続したり、コンテンツを取得したりできます。