在Java中获取URL中的参数值可以使用java.net.URLDecoder
类的decode
方法来解码URL中的参数。具体步骤如下:
-
使用
java.net.URL
类的构造函数创建一个URL对象,传入URL字符串作为参数。 -
使用
getProtocol()
方法获取URL的协议。 -
使用
getHost()
方法获取URL的主机名。 -
使用
getPath()
方法获取URL的路径。 -
使用
getQuery()
方法获取URL的查询部分。 -
使用
java.net.URLDecoder
类的decode
方法对查询部分进行解码,得到参数字符串。 -
使用
java.lang.String
类的split
方法将参数字符串按照"&"分割成键值对数组。 -
遍历键值对数组,使用
java.lang.String
类的split
方法将每个键值对按照"="分割成键和值。 -
将键值对添加到一个
java.util.Map
对象中,作为参数的键值对。
下面是一个示例代码:
import java.net.URL; import java.net.URLDecoder; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { try { String urlString = "http://example.com?param1=value1¶m2=value2"; URL url = new URL(urlString); String protocol = url.getProtocol(); String host = url.getHost(); String path = url.getPath(); String query = url.getQuery(); Mapparams = new HashMap<>(); if (query != null) { String[] keyValuePairs = query.split("&"); for (String keyValuePair : keyValuePairs) { String[] keyValue = https://www.yisu.com/ask/keyValuePair.split("="); String key = keyValue[0]; String value = https://www.yisu.com/ask/keyValue[1];"UTF-8")); } } System.out.println("Protocol: " + protocol); System.out.println("Host: " + host); System.out.println("Path: " + path); System.out.println("Params: " + params); } catch (Exception e) { e.printStackTrace(); } } }
运行以上代码,输出结果为:
Protocol: http Host: example.com Path: Params: {param1=value1, param2=value2}