如何在Java中从URL编码的字符串(而不是URL)中获取参数

5
我有一个经过URL编码的字符串,是从我使用的API返回的。我想在这个字符串上执行类似于request.getParameter("paramname")的操作。我需要的是像str.request.getParameter("paramname")这样的东西。一定有这样的东西吧?
澄清一下,API返回的内容类似于:name1=val1&name2=val2&name3=val3
我知道我可以对"&"进行分割,然后遍历每个元素,但那样看起来很愚蠢。请给予建议。谢谢!

“肯定有类似的东西吧?”不幸的是,没有。再次分割。 - Nishant
可能是重复的问题,参考链接:https://dev59.com/GXI-5IYBdhLWcg3wy76n 。里面有几个非常好的答案。 - Aleadam
2个回答

2

0

请查看此问题

那里有一个答案:

import org.eclipse.jetty.util.*;

MultiMap<String> params = new MultiMap<String>();
UrlEncoded.decodeTo("foo=bar&bla=blub", params, "UTF-8");

assert params.getString("foo").equals("bar");
assert params.getString("bla").equals("blub");

那个问题似乎没有解决我的问题。我说过我不想做分裂。 - Lye
基本上你的意思是“不”。 - Nishant
有很多答案,例如使用Apache库或Jetty库,它们会为您拆分和编码。 - moritz
哦,是的,你说得对。有一个可以看一下的:http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URLEncodedUtils.html#parse%28org.apache.http.HttpEntity%29 - Nishant
似乎那个包不存在? - Lye
javadoc 属于 Eclipse Jetty 项目,JDK 本身没有这个类,你需要使用 Jetty 客户端或服务器库。 - moritz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接