我正在尝试创建一个简单的REST Web服务器。实际的URL看起来像这样
第一个ID是所请求文件的ID,参数中的人数事先不知道。我想将这个人分组在一个集合/地图中。
以这种方式构建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]}
答案 0 :(得分:0)
您的查询字符串“&amp;”错误是参数分隔符。
http://localhost:8080/Server/files/file?id=34&firstname=alex&lastname=ozouf&age=33&firstname=kevin&lastname=gerfild&age=27
此外,我发现您正在尝试在URL中同时拥有两条记录,这些记录不可能包含在查询字符串中的对象记录中。为此,请使用POST方法及其正文。