用 java 解析 URL
Parse URL with java
我正在尝试创建一个简单的 REST 网络服务器。实际的 URL 看起来像这样
第一个ID是请求文件的ID,参数中的人数是事先不知道的。我想把这个人分组在 collection/map 中。
URL 并非必须以这种方式构建。我也可以使用这个 URL 如果它可以使它更容易
我尝试改编这些 codes 但作为新手,我真的很困惑。
这是我的代码
System.out.println(query);
final Map<String, List<String>> query_pairs = new LinkedHashMap<String, List<String>>();
final String[] pairs = query.split("&");
for (String pair : pairs) {
final int idx = pair.indexOf("=");
final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), "UTF-8") : pair;
if (!query_pairs.containsKey(key)) {
query_pairs.put(key, new LinkedList<String>());
}
final String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1), "UTF-8") : null;
query_pairs.get(key).add(value);
System.out.println(query_pairs);
这是我得到的输出
{id=[23?firstname1=alex]}
{id=[23?firstname1=alex], lastname1=[ozouf]}
{id=[23?firstname1=alex], lastname1=[ozouf], age1=[23?firstname=kevin]}
{id=[23?firstname1=alex], lastname1=[ozouf], age1=[23?firstname=kevin], lastname=[gefild?age=22]}
你的查询字符串有误,“&”是参数分隔符。
http://localhost:8080/Server/files/file?id=34&firstname=alex&lastname=ozouf&age=33&firstname=kevin&lastname=gerfild&age=27
我还看到您正试图在 URL 中同时拥有两条记录,这不可能在查询字符串中包含对象记录。为此,请使用 POST 方法及其主体。
我正在尝试创建一个简单的 REST 网络服务器。实际的 URL 看起来像这样
第一个ID是请求文件的ID,参数中的人数是事先不知道的。我想把这个人分组在 collection/map 中。
URL 并非必须以这种方式构建。我也可以使用这个 URL 如果它可以使它更容易
我尝试改编这些 codes 但作为新手,我真的很困惑。
这是我的代码
System.out.println(query);
final Map<String, List<String>> query_pairs = new LinkedHashMap<String, List<String>>();
final String[] pairs = query.split("&");
for (String pair : pairs) {
final int idx = pair.indexOf("=");
final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), "UTF-8") : pair;
if (!query_pairs.containsKey(key)) {
query_pairs.put(key, new LinkedList<String>());
}
final String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1), "UTF-8") : null;
query_pairs.get(key).add(value);
System.out.println(query_pairs);
这是我得到的输出
{id=[23?firstname1=alex]}
{id=[23?firstname1=alex], lastname1=[ozouf]}
{id=[23?firstname1=alex], lastname1=[ozouf], age1=[23?firstname=kevin]}
{id=[23?firstname1=alex], lastname1=[ozouf], age1=[23?firstname=kevin], lastname=[gefild?age=22]}
你的查询字符串有误,“&”是参数分隔符。
http://localhost:8080/Server/files/file?id=34&firstname=alex&lastname=ozouf&age=33&firstname=kevin&lastname=gerfild&age=27
我还看到您正试图在 URL 中同时拥有两条记录,这不可能在查询字符串中包含对象记录。为此,请使用 POST 方法及其主体。